日期:2014-05-18  浏览次数:20702 次

关于HttpRequest的疑惑
httpRequest应该是每次来自客户端的一次http请求都生成一个新的对象的。
但是我以前用struts的时候,好像前次的请求的内容能保留下来。
比如说有个表单,里面有下拉框,然后提交,然后服务端验证不通过,这个页面被重新输出来。但是下拉框的内容(指下拉后里面的全部数据)能照常显示出来。这个就有点奇怪。提交请求的时候,下拉框的内容应该并没有提交到服务端,服务端又没有重新取过,应该显示不出来的啊?
请教知道的朋友,谢谢

------解决方案--------------------
struts中的表单是用ActionForm装载的,ActionForm的生命周期是session,所以出现你所说的情况.
你可以在struts-config.xml配置文件中修改<action>,如下:
Java code

<action name="classBean" parameter="operation" path="/classBeanAction" scope="request" type="mytra.controller.ClassBeanAction" validate="true">
      <forward name="success" path="/success.jsp" />
      <forward name="classlist" path="/classOpt.jsp" />
</action>

------解决方案--------------------
up
------解决方案--------------------
“提交请求的时候,下拉框的内容应该并没有提交到服务端” 这个不是这样的吧,
提交的时候页面上的信息都会被提交进去,只是你没有从request里去取,
struts处理好后,还是可以把request里内容还回去的。可能加上你取了后又 设置的value.
------解决方案--------------------
顶1楼 你是利用struts框架本身的session的功能 要换成request 也就不记得上次的内容了
------解决方案--------------------
不知道有没有理解错楼主的意思,本人是这样理解的,在你提交该页面之前,
这个下拉框不也是可以显示全部数据吗(这些数据应该也是从数据库中读出来的)?
当再次来到这页面时,同样会从数据库中读取这些数据来填充下拉框项。

一句话,每次加载该页面都会填充这些下拉框项。

-------------------希望没理解错楼主的意思。