0
私は奇妙な問題があります。私のサーブレットの値は、isAuthenticatedがtrueの場合にのみ表示され、falseの場合には表示されません。それは史郎を使っています。私はhteブラウザのコンソールを見ていて、リダイレクトしていませんが、私の値は、以下の条件が当てはまるときだけJSPに表示されます。ここでJSPでサーブレット属性を使用できません
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
if(SecurityUtils.getSubject() != null && SecurityUtils.getSubject().isAuthenticated()) {
servletRequest.setAttribute("loginStatus",
"true");
} else {
servletRequest.setAttribute("loginStatus",
"false");
}
servletRequest.setAttribute("testValue", "Test Value");
servletRequest.getRequestDispatcher("/index.jsp").forward(servletRequest, servletResponse);
はJSP
<html>
<body>
<p>
This is the index page, authenticated is <b>${loginStatus}</b>
</p>
<p>
The test value is ${testValue}
</p>
<ul>
<li><a href='app-login'>Login Page</a></li>
<li><a href='test'>Test link (protected)</a></li>
<li><a href='logout'>Logout</a></li>
</ul>
</html>
}
任意のアイデアですか?
これらは「サーブレット属性」ではありません。 *要求*属性を設定していて、次の要求で失われます。セッションでそれらを設定する必要があります。 – EJP
if文がtrueの場合(ifブロック内にも存在しないものがある場合のみ)、* exact *同じ方法でリダイレクトされません。それは動作しません。ログインし、同じページをリロードする(リダイレクトしない)、ログアウトするまで動作します。 – mikeb