私はログインボタンを押すと、データベース経由で正常にログインした後、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)で このコードは、なぜ、私に解決策を教えてください動作していません
私はこのhello.ftlページにログアウトコードを追加しましたが、フリーメーカのテンプレートエラーが表示されます。コードを見て解決策を教えてください –