2016-06-19 15 views
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> 
     } 

任意のアイデアですか?

+0

これらは「サーブレット属性」ではありません。 *要求*属性を設定していて、次の要求で失われます。セッションでそれらを設定する必要があります。 – EJP

+0

if文がtrueの場合(ifブロック内にも存在しないものがある場合のみ)、* exact *同じ方法でリダイレクトされません。それは動作しません。ログインし、同じページをリロードする(リダイレクトしない)、ログアウトするまで動作します。 – mikeb

答えて

0

「index.jsp」は、そのページの名前が不良です。 WildflyはURLのサーブレットにレンダリングさせるのではなく、URLが '/'だったときにindex.jspページをレンダリングしていました。

jspをindex-view.jspに変更し、期待どおりに動作します。

関連する問題