struts的验证框架validator的问题?在线等待,解决马上揭帖......

Tzxqx 2006-03-12 08:37:01
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
ServletContext application = getServlet().getServletContext();
String validationKey = getValidationKey(mapping, request);
Validator validator = Resources.initValidator(validationKey, this,
application, request, errors, page);

try {
validatorResults = validator.validate();
} catch (ValidatorException ex) {
//这里捕获了异常
}
return errors;
}
这是我form的代码,不知道有什么错误?请高手指点......
如果能提供样例代码最好了。
...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
woolceo 2006-03-12
  • 打赏
  • 举报
回复
楼主不需要在Form里面实现validate方法...而且Form继承ValidatorForm就可以了...就等于说你的ActionForm其实就是一个简单的javabean,提供setter/getter就可以了...

其实更好的方法是直接实现DynamicValidatorForm...

补充楼上的:validate="true"可以不用设置,true是默认值...当然设置了会更直观.
wuyg719 2006-03-12
  • 打赏
  • 举报
回复
因为struts的validator只能实现一些简单的校验,所以当涉及到复杂校验的时候,就必须重载
validate方法。

如果没有复杂校验的要求,则不用重载validate方法,只需要集成ValidatorForm类即可。

当然,在struts-config.xml的相应的的mapping 中设置validate="true"
Tzxqx 2006-03-12
  • 打赏
  • 举报
回复
那位仁兄能贴点代码出来学习一下阿!
Tzxqx 2006-03-12
  • 打赏
  • 举报
回复
楼上的朋友,请问一下:
if (getType() != 1) {
errors.add(ActionErrors.GLOBAL_MESSAGE,
new ActionMessage("recommendedActionForm.roles"));
}

我搞不懂既然要用validator框架验证,你在这加这个判断是为什么?
wuyg719 2006-03-12
  • 打赏
  • 举报
回复
在form中写:

public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {

//ActionErrors errors = new ActionErrors(); \\ This will skip over validation.xml
ActionErrors errors=super.validate(mapping,request);

if (getType() != 1) {
errors.add(ActionErrors.GLOBAL_MESSAGE,
new ActionMessage("recommendedActionForm.roles"));
}

}
}

return errors;
}


在struts-config.xml的相应的的mapping 中设置validate="true"

67,515

社区成员

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

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