java将数据从servelt传递给jsp

时间:2016-04-04 11:25:36

标签: java jsp servlets

我看到很多关于此的问题,但提议的解决方案并不适用于我:

在我的servlet中,我这样做:

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
        request.setAttribute("title", "Level0and1ForUser");

        request.getRequestDispatcher("./testPages/resultSetFormatter.jsp")
                .forward(request, response);
    }
}

在jsp页面中:

<title>
<%= request.getParameter("title") %>
</title>

结果为null,如您所见:

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以使用:

${requestScope.title}

注意:

永远不要在jsp页面中使用java代码,已弃用且非常气馁

  

始终不鼓励使用scriptlet。相反,应该使用标签库,如JSTL或表达式语言(EL)。

     

总是会出现这样的问题:为什么我们不能在JSP中使用scriptlet,同时也可以使用scriptlet执行相同的任务。

     

这就是为什么人们应该避免在JSP中使用scriplet:

     
      
  • JSP Scriptlets降低了代码的可维护性和可读性,因此难以阅读和进行进一步的更改。
  •   
  • JSP Scriptlets无法重复使用。
  •   
  • JSP Scriptlet不是单元可测试的。
  •   
  • JSP Scriplets将演示文稿与非常容易出错的业务逻辑合并。
  •   
  • 最后但并非最不重要的一点是,如果JSP Scriptlet抛出异常,它会破坏整个页面,并且不会在处理过程中进一步移动。
  •   

答案 1 :(得分:1)

如果您将值放在controller的{​​{1}}中,则必须以相同的方式获取它:

attribute

但Jordi的回答更美丽。