当前位置: 首页 > 知识库问答 >
问题:

Freemarker:意外指令“”

水瀚漠
2023-03-14

我的登录模板中有一些代码,显示了用freemarker编写的错误凭据的错误。一切看起来都很正常,语法正确,但sparkjava抛出了ParseException

freemarker.core.ParseException: Syntax error in template "freemarker/admin_login.ftl" in line 40, column 9:
Unexpected directive, "</#if>". Check if you have a valid #if-#elseif-#else structure.
at freemarker.core.FMParser.generateParseException(FMParser.java:5251)
at freemarker.core.FMParser.jj_consume_token(FMParser.java:5122)
at freemarker.core.FMParser.Root(FMParser.java:3433)
at freemarker.template.Template.<init>(Template.java:208)
at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:495)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:409)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:261)
at freemarker.template.Configuration.getTemplate(Configuration.java:1786)
at freemarker.template.Configuration.getTemplate(Configuration.java:1646)
at spark.template.freemarker.FreeMarkerEngine.render(FreeMarkerEngine.java:69)
at pl.bluedotdevs.adminpanel.utils.ViewUtil.render(ViewUtil.java:22)
at pl.bluedotdevs.adminpanel.login.LoginController.lambda$static$0(LoginController.java:21)
at spark.RouteImpl$1.handle(RouteImpl.java:61)
at spark.http.matching.Routes.execute(Routes.java:61)
at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:128)
at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.eclipse.jetty.server.Server.handle(Server.java:517)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:302)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Thread.java:745)

我的代码:

<#if($authenticationFailed)>
        <div class="alert alert-danger" role="alert">Niepoprawny email lub hasło</div>
    <#elseif($authenticationSucceeded)>
        <div class="alert alert-success" role="alert">Zalogowano pomyślnie</div>-->
    <#elseif($loggedOut)>
        <div class="alert alert-success" role="alert">Wylogowano pomyślnie</div>-->
    </#if>

我真的不知道出了什么问题。我看了留档,我觉得我的语法很好。你能帮我吗?

共有2个答案

常永长
2023-03-14

括号可能是在您与一起使用时,如果导致异常。Freemaker中使用的表达式的具体示例是-

当您为插值提供值时:插值的用法是${表达式},其中表达式提供您想要以文本形式插入到输出中的值。因此${(5 8)/2}向输出输出打印“6.5”(如果输出的语言不是美式英语,可能打印“6,5”)。

所以你可以尝试使用

当您为指令参数提供一个值时:您已经在Getting Started部分看到了if指令。本指令的语法为:

在这种情况下,您可以简单地使用

注意——这同样适用于您共享的代码中使用的所有条件分支。

源-Freemaker文档模板

华坚成
2023-03-14

条件句中的括号导致了分析错误(例如

此外,变量通常不以$开头,但如果变量的名称确实包含$字符,则该变量将起作用。

试试这个。

<#if $authenticationFailed>
        <div class="alert alert-danger" role="alert">Niepoprawny email lub hasło</div>
<#elseif $authenticationSucceeded>
        <div class="alert alert-success" role="alert">Zalogowano pomyślnie</div>-->
<#elseif $loggedOut>
        <div class="alert alert-success" role="alert">Wylogowano pomyślnie</div>-->
</#if>

 类似资料:
  • static->http://localhost:8080 dev webserver->http://localhost:8080/dev 我将其他几个服务绑定到不同的位置指令。 null null 所以现在我有点不知道如何解决这个问题。

  • 我正在用SparkJava和freemarker集成构建一个应用程序。 我正在尝试呈现freemarker模板(实际上不包含变量): 在我的控制器中,我有以下配置: 但浏览器中的结果输出如下: “\u003c!DOCTYPE html\u003e\n\u003chtml lang\u003d\”en\“\u003e\n\u003chead\u003e\n\u003cmeta charset\u00

  • 问题内容: 我已经反编译了一个使用新的Java 7 String Switch功能的非常简单的类。 班上: 针对此类运行Java 7“ javap”,会生成一组有趣的指令(完整的反汇编代码可在此处获得): “ LOOKUPSWITCH”是在切换大小写稀疏时可以使用的指令,可以替换TABLESWITCH,这是“ switch”语句的默认指令。 因此,问题是,为什么我们会看到“ LOOKUPSWITC

  • 问题内容: 为什么每次我做时:- 它只是解析很好,但是当我这样做时:- 它给我一个错误,说:- 问题答案: 您要它解析JSON文本(不是)。那是无效的JSON,字符串必须用双引号引起来。 如果要与第一个示例等效:

  • 本文向大家介绍意外的令牌相关面试题,主要包含被问及意外的令牌时的应答技巧和注意事项,需要的朋友参考一下 您的JavaScript表示使用JSONP模式发出Ajax请求(这涉及将元素插入文档中而不是使用XMLHttpRequest)。 您得到的响应是一个XML文档,而不是遵循JSONP模式的JavaScript程序,它类似于: 因为浏览器试图将XML作为JavaScript执行(不是),您会收到错误

  • My HQL: 我收到以下错误: 我是HQL的新手。我想通过代码动态设置间隔值。我设置了等于比较的参数值。我读过http://www.mkyong.com/hibernate/hibernate-parameter-binding-examples/post,但我不知道在没有其他符号的情况下如何设置timeOffSet值。 斯纳克斯。 编辑: 我试过?及其工作良好,但我想用来实现这一点。