Struts验证失值的问题(重复以前的)

ruoye_2008 2009-12-10 12:58:59
假如在Struts1 中对用户信息进行修改的操作:

流程:
1、点“修改”进入action:

request.setAttribute("userDTO", userDTO);


2、传值到页面,页面接收值:

<html:text property="userDTO.name" value="${userDTO.name}" />
<html:text property="userDTO.password" value="${userDTO.password}" />


3、点“修改”后,进入Form里先验证:

private UserDTO userDTO ;

public ActionErrors validate(...,...) {
// 略
}

public void reset(..., ...) {
userDTO = new UserDTO ();
}

public userDTO getUserDTO () {
return userDTO ;
}
public void setUserDTO (UserDTO userDTO ) {
this.userDTO = userDTO ;
}


当验证条件不满足时,返回到原来JSP页面,但由于此时“${userDTO.name}”的值不存在,原来的文本框当然为空了
此时其真正值在UserDTO对象中,在Form中通过get方法可取到

以前一次发贴得到一种办法:

<c:if test="${userVO.name == null}">
<html:text property="name" />
</c:if>
<c:if test="${userVO.name != null}">
<html:text property="name" value="${userVO.name}" />
</c:if>


但如果修改的条数有几十条,那太麻烦了,如果必须在Form中验证,有没有简单的办法
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruoye_2008 2009-12-17
  • 打赏
  • 举报
回复
开始还没有明白6楼说的,今天刚想出个办法,正准备结贴,仔细一看,与6楼说的正好一样,倒!
ruoye_2008 2009-12-13
  • 打赏
  • 举报
回复
最后顶一次
ruoye_2008 2009-12-12
  • 打赏
  • 举报
回复
自已再顶一下!
longtenggdf 2009-12-11
  • 打赏
  • 举报
回复
前后台都要挡的。
这样说吧,当你请求到form去验证的时候,这是的request里面仍然有user对象存在的。你再返回,就又是一个新的request scrop了。
所以你在form里面把user对象取出来再次放到request里面就可以了。就类似在页面设置一个隐藏域做一下参数的中转站一样。
寂寞空虚党 2009-12-11
  • 打赏
  • 举报
回复
囧。js验证是需要的,但是服务器端验证同时也需要,要知道,浏览器一设定,js就全部失效的。
ruoye_2008 2009-12-11
  • 打赏
  • 举报
回复
用JS验证,老弹出对话框出来,感觉蛮烦

用Form验证,只是在页面相对应的地方提示一些信息,感觉友好一些
zl3450341 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 youjianbo_han_87 的回复:]
rquest本来的有效期就是一次请求,再回来,EL 表达式当然取不到值。

<html:text property="userDTO.name" value="${userDTO.name}" /> 你这样赋值的同时,值本来就会保存到Struts Form里面,这是常识,即使你不去Action里面验证。Form里面也是有值的。

[/Quote]
up

验证还是用js吧
youjianbo_han_87 2009-12-10
  • 打赏
  • 举报
回复
rquest本来的有效期就是一次请求,再回来,EL 表达式当然取不到值。

<html:text property="userDTO.name" value="${userDTO.name}" /> 你这样赋值的同时,值本来就会保存到Struts Form里面,这是常识,即使你不去Action里面验证。Form里面也是有值的。
crazylaa 2009-12-10
  • 打赏
  • 举报
回复
。。。。似乎是request失效。。。
哎!叫你不用js验证,还往服务器发,占用网络资源不说,还麻烦。。。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧