Servlet属性在JSP中不可用

时间:2016-06-19 00:56:26

标签: java jsp servlets

我有一个奇怪的问题。我的servlet值仅在isAuthenticated为true时显示,而不是在为false时显示。如果重要的话,这是使用Shiro。我查看了hte浏览器的控制台,它没有重定向或任何东西,但是我的值仅在下面的if为真时显示在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>
        }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

原来index.jsp是该页面的一个糟糕名称。当我的网址是&#39; /&#39;时,Wildfly只是呈现index.jsp页面,而不是让该网址的servlet呈现它。

我将jsp更改为index-view.jsp,它按预期工作。