`
wiley
  • 浏览: 254371 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

将action得到的值,通过request显示到页面中

阅读更多
百事通信息网


     今天又遇到一个问题,将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不被保留.
分享到:
评论
1 楼 grape927 2008-08-28  
我找了半天都没找出原因来,
谢了!

相关推荐

    servlet获得下拉列表的值,并跳转到相关页面

    在这个例子中,`name="selection"`属性是关键,它定义了下拉列表的名称,Servlet将通过这个名字来获取值。 当用户提交表单时,HTTP请求会发送到指定的Servlet(这里是ServletHandler)。在Servlet中,我们需要使用...

    jsp action中保存和修改的关系.docx

    // 功能:得到单个对象并把各个对象放到VO对象中页面中显示数据的值 Ep ep = new Ep(); ep.setId(Long.parseLong(epid)); ep = epService.getEpById(ep); epVO.setEp(ep); // depart对象 Depart depart = new...

    SSH错误集锦

    这个错误通常发生在 Action 里一般会 request.setAttribute() 一些对象,然后在转向的 JSP 文件里(用 tag 或 request.getAttribute() 方法)得到这些对象并显示出来。解决方法是检查 JSP 文件里的 tag 的 name 属性...

    jsp servlet面试题总结

    Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action 所指向 URL。 3. Get是不安全的,因为在传输过程中,数据被放在请求的 URL 中,而如今现有的很多服务器、代理服务器或者用户...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    本讲将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中...

    servlet和JSP面试题答案.pdf

    Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action 所指向 URL。 3. Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中,而如今现有的很多服务器、代理服务器或者用户...

    Java-Web测试题.doc

    8. 在 Java Web 应用程序中,运行 a.jsp 后,浏览器上显示如下表格,在 a,jsp 上进行选择后将页面提交到 b.jsp 中要获得选中的复选框的值,应该编写以下代码段。因此,正确答案是 d) []=request.getParameterValues...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    struts1属性详解

    6. **input**: `input`属性用于指定当`ActionForm`的验证失败时返回的页面,通常用于显示错误消息。例如,`input="/aa.jsp"`表示验证失败后返回`aa.jsp`。 7. ****标签: `&lt;forward&gt;`元素定义了请求处理后的转发路径...

    jsp实用教程 jsp电子教程 jsp 从入门到精通 jsp

    2. Expression Language(EL):使用${}表示,用于在页面上显示Java对象的值。 3. Declaration:声明变量或方法,供整个JSP页面使用。 四、JSP内置对象 1. request:代表HTTP请求,用于获取请求参数和头部信息。 2....

    asp经典程序代码集

    虽然在ASP中直接使用`MsgBox`无法在客户端显示对话框,但可以通过嵌入JavaScript代码来实现这一功能。上述代码会在页面加载时弹出一个包含`yourVar`值的消息框。这是在需要向用户显示即时消息时的一种解决方案。

    推选文档JavaServer-Pages网页程序设计PPT.ppt

    JSP内置对象是JSP提供的一组预定义对象,它们可以直接在JSP页面中使用,无需显式创建。这些对象包括但不限于: 1. `request`:代表HTTP请求,可以获取请求参数。 2. `response`:代表HTTP响应,可以设置响应头和输出...

    ASP编程实用20例

    可以通过 `Response.Redirect` 方法将当前页面的查询字符串传递到另一个ASP页面。 ```vb Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING")) ``` #### 13. global.asa 文件的作用 在...

    编程语言java导出excel代码.pdf

    - 通过`和`%&gt;`包裹的Java代码段,可以在JSP页面中嵌入Java代码。代码段中使用`request`对象获取了当前请求的上下文路径和基础路径,这些路径信息有助于构建正确的URL路径。 2. HTML页面的结构和元数据设置 - 页面...

    Struts2内置拦截器简介

    - **用途**:当Action中的`validate()`方法返回`false`时,可以通过此拦截器控制Action的流转,如重定向到输入页面等。 27. **Json Validation (JSON验证)** - **说明**:如果验证失败,此拦截器会将`...

    struts文件上传小项目

    通过调用`ServletFileUpload.parseRequest`方法,我们可以得到一个`FileItemIterator`,遍历其中的每个文件项。对于每个文件项,如果它是普通字段,可以直接读取其值;如果是文件,可以通过`FileItemStream`接口获取...

    JSP对象及使用方法(带例子)

    本文将详细介绍其中的一些常用内置对象——特别是`request`对象——及其使用方法,并通过具体的示例代码进行说明。 #### 二、JSP内置对象简介 JSP提供了九个内置对象,这些对象简化了Web开发过程中的许多任务。其中...

    portlet开发指南

    Portlet是一种在Portal中使用的组件,它负责生成动态的内容并将其嵌入到门户页面中。简单来说,Portlet就是一个可以重用的小型应用,它可以显示动态数据,如新闻头条、股票行情等,并且可以根据用户的喜好进行个性化...

    Tomcat中文问题之完美解决

    - 当输入了“测试”两个字后,页面能够正确显示这两个汉字,说明乱码问题得到了有效解决。 #### 解决方案二:修改Server.xml配置 除了使用Filter外,还可以直接在Tomcat的配置文件`server.xml`中设置字符编码,以...

    java面试问题汇总(非常全面)

    Struts 标签库提供了一系列用于简化页面开发的标签,例如 `&lt;s:textfield&gt;`、`&lt;s:submit&gt;` 等,可以直接在 JSP 页面中使用。 #### 28. Struts抛出form是怎么把数据读出来的? 使用 `ActionForm` 对象接收表单数据。...

Global site tag (gtag.js) - Google Analytics