论坛首页 Java企业应用论坛

在表单里想保持原来用户修改的数据.

浏览 4516 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-23  
(1)使用技术struts-validate作用表单验证(注:不使用javascript)
(2)在validate.xml 配置表单的数据限制.
(3)在struts-confing.xml的actionmapping设置validate=true,设置input="返回原来的编辑页面"
使用以上配置和设置.想实现.当编辑当条记录.单击保存.验证没有通过并跳回编辑页面,
发现原来用户输入的数据不能保持.全部为空.

我的目的想保持原来用户修改的数据在表单里.这种功能你们一般是如何实现的?

请高手给出一点意见?
   发表时间:2005-07-24  
一般这样是没有问题的,Formbean是保存在request或session,或application,这取决于你对应Action的配置. 在页面初始化的时候Struts会自动赋值的.

不知你的页面是如何写的?
0 请登录后投票
   发表时间:2005-07-25  
thank you for Morgan0916 reply.
流程 EditLaneAction.do?id=11 ---> editLane.jsp --> SaveLaneAction.do
(如果是出错的话返回editLane.jsp,正确的话.跳到ListLane.jsp中)
我的editLane.jsp页面
<html:form action="/SaveLaneAction" target="rightdown">
       <html:text property="laneName" styleClass="field"   value="${laneVOList.name}" />//laneName的值从request取的.这是第一次给text的.关于formbean是初始为空的
     <html:submit styleClass="buttonshallow">
         <fmt:message key="form.save" />
     </html:submit>
</html:form>

action 配置
  <action name="saveLaneForm" scope="request"
            path="/SaveLaneAction"
            validate="true"
            input="/pages/ms/EditLane.jsp"
            type="com.up.cip.action.ms.SaveLaneAction">
           <forward name="failure" path="/pages/ms/EditLane.jsp"/>
    </action>

formBean是继承validateForm的
关键:当我把value="${}"去掉. 就会保留用户修改的数据. 添加新记录有没有问题的.
是不是value=${...} 把原来formBean的值覆盖掉了? 这问题你们是怎么解决的?
0 请登录后投票
   发表时间:2005-07-27  
在配置文件中,将actionform的范围设置成scope="session"就可以了
0 请登录后投票
   发表时间:2005-08-15  
强烈建议不要使用Session。其实要保持表单里的数据不丢失,方法还是很多的。比如,在页面中使用<input type="text" name="">或<html:text property="" />时,不要设置value=""这个属性,并且,在struts_config.xml配置中,设置scope="request"就可以了,如果想把它们清掉,最好是调用formbean中的reset方法,并在方法里把所有的属性置为空!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics