避免Jsp中的Scriptlet在页面加载时显示数据

时间:2011-07-09 20:39:28

标签: forms jsp servlets scope scriptlet

我意识到当你在jsp中提交表单时,在映射的servlet中你可以获得所需的数据,将它设置在适当的范围内(比如请求)并将它转发给jsp,如下所示:

request.setAttribute("myList", myList); // Store list in request scope.
request.getRequestDispatcher("/index.jsp").forward(request, response);

但是我想知道没有表格的页面或者换句话说我们想在页面加载后立即显示数据,我们如何在不使用像

这样的脚本的情况下有效地加载数据
<%= myBean.populateData("String Argument_1")%>

如果有人可以提供任何建议,我们将非常感激。

2 个答案:

答案 0 :(得分:3)

请求来自表单的事实不会改变任何内容。 servlet接收请求,然后可以进行一些处理并转发到JSP:

  1. servlet获取请求参数
  2. servlets使用这些参数从数据库中获取请求的数据,并使用所述数据填充一些bean。它也可以从头开始构建一些bean,以显示具有默认值的表单
  3. servlet将这些bean放入请求属性
  4. servlet转发到JSP
  5. JSP避免使用scriptlet,而是使用JSP EL,JSTL和自定义标记来显示存储在请求范围内的bean中的信息

答案 1 :(得分:0)

我认为将EL与JSTL结合使用可以在最常见的情况下帮助您。如果这还不够,您可以编写EL函数或自己的自定义标记。