2011-07-09 48 views
0

我意识到,当您在jsp中提交表单时,在映射的servlet中,您可以获得所需的数据,将其设置在适当的范围内(比如请求)并将其转发给JSP是这样的:避免Jsp中的Scriptlets在页面加载时显示数据

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

但是我想知道对于这些不具有形式或者换句话说,我们要为页面加载,一旦显示数据页,我们如何能有效地加载数据,而无需使用小脚本像

<%= myBean.populateData("String Argument_1")%> 

如果有人能提供任何建议ar也一样。

+0

只需使用'doGet()'而不是'doPost()'。 – BalusC

回答

3

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

  1. 的servlet获得的请求参数
  2. 的servlet使用这些参数来从数据库中获取请求数据,并填充一些豆类与所述数据。它也可以从头开始构建一些豆,以显示与默认值的形式
  3. 的servlet把那些豆在请求属性
  4. 的servlet转发到一个JSP
  5. JSP使用的scriptlet避免和而使用JSP EL中,JSTL和自定义标签来显示存储在请求范围内的beans中的信息
+0

但是,我将如何发送请求到页面加载Servlet而不使用scriptlets? –

+0

在设计正确的MVC应用程序中,您没有任何指向JSP URL的链接或表单。它们都指向一个Servlet(或Filter)的URL,它转发给一个JSP。 –

+1

将一个欢迎文件添加到您的web.xml中。创建一个元刷新:''。 你在这里有很多选择,但上面很容易,而且工作。 – home

0

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

相关问题