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

解决方案 »

  1.   

    struts中的表单是用ActionForm装载的,ActionForm的生命周期是session,所以出现你所说的情况.
    你可以在struts-config.xml配置文件中修改<action>,如下:<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>
    注意:scope="request", 默认scope="session"
      

  2.   

    如果改为scope= "request ",是不是就不是这样了呢?
      

  3.   

    “提交请求的时候,下拉框的内容应该并没有提交到服务端”  这个不是这样的吧,
    提交的时候页面上的信息都会被提交进去,只是你没有从request里去取,
    struts处理好后,还是可以把request里内容还回去的。可能加上你取了后又 设置的value.
      

  4.   

    改为scope="request"服务端验证不通过,这个页面将不会被重新输出来!
      

  5.   

    改为scope= "request"前次的请求的内容将不会保留下来!
      

  6.   

    也就是说改为scope=   "request " 
    如果验证不通过,我必须把下拉框列表的数据重新从数据库取一次,在设到到request去,对吗?
      

  7.   

    顶1楼 你是利用struts框架本身的session的功能 要换成request 也就不记得上次的内容了