困扰两周的问题,发现了,如何解决呢?(新手上路,请高手指点,多谢)

mrkai218 2008-02-27 03:16:56
我在用hibernate和struts做一个小系统。
在用户处理这里,我采用的是一个DispathAction,普通的ActionForm,validator验证框架。
想在一个DispathAction中处理关于一张表的增删改查的实现。
struts-config.xml配置部分如下:

...
<form-bean name="userForm" type="com.mrkai.struts.form.UserForm" />
...
<action attribute="userForm"
input="/jsp/admin/userAdd.jsp"
name="userForm"
parameter="method"
path="/user"
scope="request"
validate="false"
type="com.mrkai.struts.action.UserAction">

<forward name="detail" path="/jsp/admin/userManager.jsp" />

<forward name="add" path="/jsp/admin/userAdd.jsp" />
</action>
...
用户的插入:(jsp1中)
<html:form action="user.do?method=addUser">
validate="true"
实现验证内容,验证可以,但下面的更改就不好使,页面会跳转到input="/jsp/admin/userAdd.jsp"
用户的更改:(jsp2中)
<html:form action="/user.do?method=updateUser">

但如果validate="false"的时候就可以实现在dispathAction中的插入和更改。但验证失效了啊!

请问有人遇到过这种问题吗?多谢!!!!
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
K_Tedevster 2008-02-28
  • 打赏
  • 举报
回复
其实你如果使用dispatchAction的话,用validator验证框架就会碰到问题,你不如把验证放到js上,
或者在action中验证,如果一定想要用validator验证框的话,因为你只是注册需要验证嘛,
建议把action分开来写,因为如果是validate=”true“的话,
dispatchAction中每一个业务都要去验证一遍的
mrkai218 2008-02-27
  • 打赏
  • 举报
回复
不知道平时大家在做dispatchAction的时候,是如何处理业务的?
是怎么样一个流程??
mrkai218 2008-02-27
  • 打赏
  • 举报
回复
回复:2楼
同时也谢谢一楼的朋友!
当然,我只作了注册时的验证,没有做其它页面的验证。
当注册不通过,就会返回input="/jsp/admin/userAdd.jsp" 这里,我就不清楚Dispatchation怎么会和validate较上劲了。
只要用验证,ation=“user.do?method=updateUser&username=<%=user.getUserName()%>"就不能正常跳转到action里执行。会转到userAdd.jsp中去。并且看提示,应该是做了一次提交。(验证未通过的表现)
当validate=”false“时,又会好使了。
mrkai218 2008-02-27
  • 打赏
  • 举报
回复
allan0527:
"因为你那个action处理了很多操作,input肯定不只一个的,这个描述就没多大意义了。"
我之前再找错误的时候,试着把它去掉过,但是也没能解决问题。
不知道你平常都会用什么方法解决。能说一下简单思路吗?谢谢
allan0527 2008-02-27
  • 打赏
  • 举报
回复
既然用dispathAction了,
<action attribute="userForm"
input="/jsp/admin/userAdd.jsp"
name="userForm" ...
其中的input="/jsp/admin/userAdd.jsp"就去掉吧。。。
因为你那个action处理了很多操作,input肯定不只一个的,这个描述就没多大意义了。
验证不通过统一跳到错误页面,
验证通过跳转用
<forward name="detail" path="/jsp/admin/userManager.jsp" />
<forward name="add" path="/jsp/admin/userAdd.jsp" />
<forward name="update" path="="/jsp/admin/update.jsp" />
K_Tedevster 2008-02-27
  • 打赏
  • 举报
回复
input="/jsp/admin/userAdd.jsp" 这一步的跳转和验证是有关系的,不知道你如果验证不通过的想返回哪一个页面
chenlixun 2008-02-27
  • 打赏
  • 举报
回复
不太明白楼上的意思!

你是说跳转的页面不对?如果是跳转的页面不对,可以设置 <forward name="update" path="xxxxxxxxx" />
xxxxxxxxx代表你想指定的跳转页面路径。

设置 validate="true" 验证功能才生效,否则,验证功能失效。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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