百事通信息网
今天又遇到一个问题,将action得到的记录集(ArrayList)存到request中,再将其转到jsp页面,该页面居然在request中找不到这个记录集,将其存放到servletContext中便可以得到该记录集(^O^).
还是跟往常一样,遇到问题首先想到的是Baidu and Google,不过这次他们二位"仁兄"也帮不上忙,于是去各大论坛求助,唉......了一个多小时,无人问径,郁闷哪!凡事得靠自已呀,经过几个小时的查阅资料,最终问题得以解决,心情舒畅哪!
action中代码片段:
......
ArrayList arlist=(ArrayList)this.ius.getUsers();
request.setAttribute("users", arlist);
return mapping.findForward("success");
......
页面代码片段:
......
<logic:present name="users">
<table>
<logic:iterate id="user" name="users" indexId="number">
<tr>
<td>
<bean:write name="number" />
<bean:write name="user" property="userid" />
<bean:write name="user" property="username" />
</td>
</tr>
</logic:iterate>
</table>
</logic:present>
......
struts配置文件代码片段:
......
<action path="/listUser" type="org.springframework.web.struts.DelegatingActionProxy" validate="false" >
<forward name="success" path="/listUser.jsp" redirect="true" />
</action>
......
问题的关键就出在redirect="true",将值改为false就可以了.
那什么到底有何区别呢?
当元素有redirect=“false”属性或redirect属性不存在的时候,RequestDispatcher.forward(…)被执行;当redirect=“true”是,将调用sendRedirect(…)方法。
--------------------------------------------------------------------------
forward是服务器内部重定向,也就是说服务器得到请求后重定向到本应用的另一个程序(页面),在此过程中并没有通知客户端,所以在跳转的叶面中,request作用域的变量都能生效.
redirect是外部(自已理解的)重定向方式,服务器得到请求后先是通知道客户端,客户端再次发送请求,此时request不被保留.
分享到:
相关推荐
在这个例子中,`name="selection"`属性是关键,它定义了下拉列表的名称,Servlet将通过这个名字来获取值。 当用户提交表单时,HTTP请求会发送到指定的Servlet(这里是ServletHandler)。在Servlet中,我们需要使用...
// 功能:得到单个对象并把各个对象放到VO对象中页面中显示数据的值 Ep ep = new Ep(); ep.setId(Long.parseLong(epid)); ep = epService.getEpById(ep); epVO.setEp(ep); // depart对象 Depart depart = new...
这个错误通常发生在 Action 里一般会 request.setAttribute() 一些对象,然后在转向的 JSP 文件里(用 tag 或 request.getAttribute() 方法)得到这些对象并显示出来。解决方法是检查 JSP 文件里的 tag 的 name 属性...
Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action 所指向 URL。 3. Get是不安全的,因为在传输过程中,数据被放在请求的 URL 中,而如今现有的很多服务器、代理服务器或者用户...
本讲将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中...
Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action 所指向 URL。 3. Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中,而如今现有的很多服务器、代理服务器或者用户...
8. 在 Java Web 应用程序中,运行 a.jsp 后,浏览器上显示如下表格,在 a,jsp 上进行选择后将页面提交到 b.jsp 中要获得选中的复选框的值,应该编写以下代码段。因此,正确答案是 d) []=request.getParameterValues...
以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。 工程...
6. **input**: `input`属性用于指定当`ActionForm`的验证失败时返回的页面,通常用于显示错误消息。例如,`input="/aa.jsp"`表示验证失败后返回`aa.jsp`。 7. ****标签: `<forward>`元素定义了请求处理后的转发路径...
2. Expression Language(EL):使用${}表示,用于在页面上显示Java对象的值。 3. Declaration:声明变量或方法,供整个JSP页面使用。 四、JSP内置对象 1. request:代表HTTP请求,用于获取请求参数和头部信息。 2....
虽然在ASP中直接使用`MsgBox`无法在客户端显示对话框,但可以通过嵌入JavaScript代码来实现这一功能。上述代码会在页面加载时弹出一个包含`yourVar`值的消息框。这是在需要向用户显示即时消息时的一种解决方案。
JSP内置对象是JSP提供的一组预定义对象,它们可以直接在JSP页面中使用,无需显式创建。这些对象包括但不限于: 1. `request`:代表HTTP请求,可以获取请求参数。 2. `response`:代表HTTP响应,可以设置响应头和输出...
可以通过 `Response.Redirect` 方法将当前页面的查询字符串传递到另一个ASP页面。 ```vb Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING")) ``` #### 13. global.asa 文件的作用 在...
- 通过`和`%>`包裹的Java代码段,可以在JSP页面中嵌入Java代码。代码段中使用`request`对象获取了当前请求的上下文路径和基础路径,这些路径信息有助于构建正确的URL路径。 2. HTML页面的结构和元数据设置 - 页面...
- **用途**:当Action中的`validate()`方法返回`false`时,可以通过此拦截器控制Action的流转,如重定向到输入页面等。 27. **Json Validation (JSON验证)** - **说明**:如果验证失败,此拦截器会将`...
通过调用`ServletFileUpload.parseRequest`方法,我们可以得到一个`FileItemIterator`,遍历其中的每个文件项。对于每个文件项,如果它是普通字段,可以直接读取其值;如果是文件,可以通过`FileItemStream`接口获取...
本文将详细介绍其中的一些常用内置对象——特别是`request`对象——及其使用方法,并通过具体的示例代码进行说明。 #### 二、JSP内置对象简介 JSP提供了九个内置对象,这些对象简化了Web开发过程中的许多任务。其中...
Portlet是一种在Portal中使用的组件,它负责生成动态的内容并将其嵌入到门户页面中。简单来说,Portlet就是一个可以重用的小型应用,它可以显示动态数据,如新闻头条、股票行情等,并且可以根据用户的喜好进行个性化...
- 当输入了“测试”两个字后,页面能够正确显示这两个汉字,说明乱码问题得到了有效解决。 #### 解决方案二:修改Server.xml配置 除了使用Filter外,还可以直接在Tomcat的配置文件`server.xml`中设置字符编码,以...
Struts 标签库提供了一系列用于简化页面开发的标签,例如 `<s:textfield>`、`<s:submit>` 等,可以直接在 JSP 页面中使用。 #### 28. Struts抛出form是怎么把数据读出来的? 使用 `ActionForm` 对象接收表单数据。...