Freemarker模板错误

时间:2017-04-19 06:42:54

标签: java spring-mvc spring-boot spring-security freemarker

当我点击登录按钮并在成功登录数据库后重定向到hello.ftl页面。但ftl页面显示此错误

  

FreeMarker模板错误(DEBUG模式;在生产中使用RETHROW!):   以下评估为null或缺失:==> var [在模板中   “hello.ftl”在第8行,第32列----提示:如果失败的表达式   众所周知,在法律上是指某些有时无效的东西   丢失,要么指定默认值,如myOptionalVar!myDefault,   或者使用< #if myOptionalVar ??> when-present<#else> when-missing。 (这些   只涵盖表达的最后一步;覆盖整体   表达式,使用括号:(myOptionalVar.foo)!myDefault,   (myOptionalVar.foo)?? ---- ---- FTL堆栈跟踪(“〜”表示   嵌套相关): - 失败于:#macro url relativeUrl extra ... [in   模板“spring.ftl”在第89行第1列的宏“url”中 - 达到了   通过:@ spring.url“/ logout”,var =“logoutUrl”[在模板中   第8行第9列的“hello.ftl”---- Java堆栈跟踪(for   程序员):---- freemarker.core.InvalidReferenceException:[...   已打印异常消息;见上面......]   freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)   在freemarker.core.EvalUtil.compare(EvalUtil.java:196)at   freemarker.core.EvalUtil.compare(EvalUtil.java:113)at   freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62)   at freemarker.core.BooleanExpression._eval(BooleanExpression.java:30)   在freemarker.core.Expression.eval(Expression.java:81)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type="text" name="txt" class="mytxt">
  <input type="button" class="submmit" value="Shoot">
</div>
<div class="areaofcontent" style="width:68%;float:right; background-color:#eee;height:400px;overflow-y:scroll;">
  <div class="putbullet"></div>
</div>

请告诉我解决方案,为什么此代码无效

1 个答案:

答案 0 :(得分:0)

它会尝试将var="logoutUrl"解释为var == "logoutUrl",从而查找名为var的变量。为避免这种情况,必须通过名称传递所有参数:

<@spring.url relativeUrl='/logout' var="logoutUrl"/>

虽然给出了额外的参数名称和值,但我不确定你的意思是什么。也许你只是想<@spring.url logoutUrl />