2017-04-19 100 views
1

私はログインボタンを押すと、データベース経由で正常にログインした後、hello.ftlページにリダイレクトされます。しかし、FTLページは、このエラーFreemarkerテンプレートエラー

FreeMarkerのテンプレートエラー(DEBUGモード;生産の再スローを使用!)を示しています==> VAR [テンプレート で "hello.ftlを": は以下がnullに評価さまたは欠落しています8行32列目] ----ヒント:失敗した式 がヌルまたは が存在しないことを合法的に参照することがわかっている場合、myOptionalVar!myDefault、 などのデフォルト値を指定するか、< #if myOptionalVar ?>現在の場合< #else>欠損の場合。 (これらの は式の最後のステップのみをカバーし、 式全体をカバーするには、括弧を使用します:(myOptionalVar.foo)!myDefault、 (myOptionalVar.foo)?? ---- FTLスタックトレース「〜」は、ネスティングに関連する を意味します): - 失敗:#macro url relativeUrl extra ... [ マクロの "url"行89、column 1のテンプレート "spring.ftl"] - アクセス先:@spring .wl "/ logout"、var = "logoutUrl" [テンプレートの "hello.ftl"、行8、列9] ---- Javaスタックトレース( プログラマ用):---- freemarker.core.InvalidReferenceException :[... 例外メッセージは既に印刷されています。上の図を参照してください...] freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62) ATでfreemarker.core.EvalUtil.compare(EvalUtil.java:113)でfreemarker.core.EvalUtil.compare(EvalUtil.java:196)でfreemarker.core.BooleanExpression._eval(BooleanExpression.java:30)

<#import "/spring.ftl" as spring> 
<html> 
<body> 

    Welcome 
    <!-- For login user --> 

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


    <form action="${logoutUrl}" method="post" id="logoutForm"> 
      <input type="hidden" name="${_csrf.parameterName}" 
       value="${_csrf.token}" /> 
     </form> 

     <script> 
      function formSubmit() { 
       document.getElementById("logoutForm").submit(); 
      } 
     </script> 

     <#if "${pageContext.request.userPrincipal.name != null}"?? > 
    <span><h2> 
       User : ${pageContext.request.userPrincipal.name} | <a 
        href="javascript:formSubmit()"> Logout</a> 
      </h2></span> 
     </#if> 


</body> 
</html> 

でfreemarker.core.Expression.eval(Expression.java:81)で このコードは、なぜ、私に解決策を教えてください動作していません

+0

私はこのhello.ftlページにログアウトコードを追加しましたが、フリーメーカのテンプレートエラーが表示されます。コードを見て解決策を教えてください –

答えて

0

var="logoutUrl"をと解釈しようとしています0を返し、varという変数を探します。追加のパラメータ名と値の与えられた私は、あなたがこれを達成するために何を意味するのかはよく分からないけど

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

:それを避けるために、すべてのパラメータは名前で渡さなければなりません。多分<@spring.url logoutUrl />がほしいと思うかもしれませんか?