2016-06-19 6 views
0

У меня странная проблема. Мои значения сервлета отображаются только тогда, когда isAuthenticated имеет значение true, а не когда оно ложно. Это использует Сиро, если это имеет значение. Я посмотрел на консоль hte браузера, и это не перенаправление или что-то еще, но мои значения отображаются только на JSP, если значение true указано ниже.Атрибуты сервлета недоступны в 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

Это не атрибуты сервлета. Вы устанавливаете атрибуты * request *, и они будут потеряны при следующем запросе. Вы должны установить их в сеансе. – EJP

+0

Почему они работают, только если утверждение if истинно (и есть тот, который даже не внутри блока if? Они выполняются точно так же, и нет перенаправления. Я загружаю страницу в новый браузер и он не работает. Войдите и перезагрузите одну и ту же страницу (без перенаправления), и она работает до тех пор, пока я не выйду из системы. – mikeb

ответ

0

Выбрано index.jsp было плохое имя для этой страницы. Wildfly просто показывал страницу index.jsp, когда мой url был '/', вместо того, чтобы позволить сервлету с этим URL-адресом визуализировать его.

Я изменил jsp на index-view.jsp и работает так, как ожидалось.

Смежные вопросы