使用webwork2 验证,结果一点效果都没有?大侠帮我看看什么地方漏了? 和没验证一样,没有填任何东西,照样跳转到page05-success.jsp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那当然嘛,public String execute() {return SUCCESS;}跳转的页面是根据这个方法的返回值来的,返回的始终是"SUCCESS",肯定就始终会跳转到<result name="success" type="dispatcher">page05-success.jsp</result>这个页面。一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR” 一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR”===============不是吧,我看过的教程都没有在execute判断,如果是那样,还要配置文件干什么? 1.你使用的是required验证,这个验证只是验证是否是null,(查看源码可以知道),但是对于一个文本框的提交,他的值是""不是null,所以验证通过,你应该使用requiredstring来验证。2.你验证的是username,而你的action中并没有username呀,你的action只有一个User呀,你是要验证User里面的username把,那么<field name="username">这个写法是错的,应该是<field name="user.username">3.还有如果表单没有采用webwork标签的form和text那么是不会有验证信息显示的,需要自己写一段jsp脚本才可以。 一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR”===============不是吧,我看过的教程都没有在execute判断,如果是那样,还要配置文件干什么?问题应该出现在Form05Action的getModel()里面,楼主的代码中Form05Action如果是继承了ModelDriven来实现数据的传递的话,参数前面是一定要加上model.XXX,所以在page05.jsp中应该是Username:<input type="text" name="model.username"><br/>Password:<input type="text" name="model.password"><br/>Email:<input type="text" name="model.email"><br/>Age:<input type="text" name="model.age"><br/>这样在执行Form05Action的execute之前,拦截器<interceptor-ref name="model-driven"/>才会拦截,把填入的参数写进对应的user.username、user.password等,可以设置断点调试一下,在执行execute()之前,肯定要先执行getModel(),先进行校验,然后把参数写进user的对应的属性里面。我所说的用户的合法性,是指此用户是否存在和用户跟密码是否相符(例如查询数据库),而楼主所提到的合法性,是指输入参数的校验,比如,不能为空,等等。 wangzhouyu(小小) 是对的,用requiredstring就行了。name="username"这样写也是对的,webwork2相当灵活谢谢 有没有webwork的qq群,或论坛啊? 为什么我验证下来只有requiredstring和email可以,其他验证都不起任何作用,郁闷! 抽空写了个JeeSite企业信息管理基础框架,希望大家多来交流交流 求java解析http编码 如何把list里的数据放到String数组里,在线等 请教一个jolt调用tuxedo服务开启事务的问题 极度郁闷为什么我的ActionServlet里面引用的类总是有错 关于forte的资料 为什么我的DataSource里没有Table显示? 请大家帮忙 tomcat 和 APACHE整合后如何自定义虚拟根目录? action在Struts2中做了配置,但是点击超链接的时候没有跳转到指定页面 一个很急的问题!!!!!!!!!!!!!!.谢谢各位先. resin 的问题,求助!
public String execute() {
return SUCCESS;
}
跳转的页面是根据这个方法的返回值来的,返回的始终是"SUCCESS",肯定就始终会跳转到
<result name="success" type="dispatcher">page05-success.jsp</result>这个页面。一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR”
===============
不是吧,我看过的教程都没有在execute判断,如果是那样,还要配置文件干什么?
2.你验证的是username,而你的action中并没有username呀,你的action只有一个User呀,你是要验证User里面的username把,那么<field name="username">这个写法是错的,应该是<field name="user.username">
3.还有如果表单没有采用webwork标签的form和text那么是不会有验证信息显示的,需要自己写一段jsp脚本才可以。
===============
不是吧,我看过的教程都没有在execute判断,如果是那样,还要配置文件干什么?问题应该出现在Form05Action的getModel()里面,楼主的代码中
Form05Action如果是继承了ModelDriven来实现数据的传递的话,参数前面是一定要加上model.XXX,所以在page05.jsp中应该是
Username:<input type="text" name="model.username"><br/>
Password:<input type="text" name="model.password"><br/>
Email:<input type="text" name="model.email"><br/>
Age:<input type="text" name="model.age"><br/>
这样在执行Form05Action的execute之前,拦截器<interceptor-ref name="model-driven"/>才会拦截,把填入的参数写进对应的user.username、user.password等,
可以设置断点调试一下,在执行execute()之前,肯定要先执行getModel(),先进行校验,然后把参数写进user的对应的属性里面。我所说的用户的合法性,是指此用户是否存在和用户跟密码是否相符(例如查询数据库),
而楼主所提到的合法性,是指输入参数的校验,比如,不能为空,等等。