JSP / Servlet属性验证

时间:2011-09-19 18:48:10

标签: java jsp servlets jstl el

有没有办法验证从Servlet传递到JSP的请求属性?

例如,在我的Servlet中,我做了类似的事情:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Foo foo = new Foo();
    request.setAttribute("foo", foo);
    RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/bar.jsp);
    dispatcher.forward(request, response);
}

bar.jsp看起来像这样:

<html>
    <body>
        ${foo.getBaz}
    </body>
</html>

在bar.jsp中,有没有办法确保“foo”属性是Foo对象?我们使用Maven JSPC插件来编译JSP,并且在编译时捕获重构/重命名错误(比如Foo.getBaz()被重命名为Foo.getFluff())会很好。

2 个答案:

答案 0 :(得分:1)

查看java中的instanceof运算符。它应该可以解决你的问题。

答案 1 :(得分:0)

你可以使用这样的scriptlet:

<%
Foo foo = (Foo) request.getAttribute("foo");
String baz = foo.getBaz();
%>

然后在HTML中使用baz <%= baz %>