reference: http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx
能解决这个问题还真是要感谢 http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx这篇文章的作者qjyong。参照他的方法我在SSH中完成了不同方法验证需求不同的操作。
1. 自定义的FileChecks类。这里对qjyong的FileChecks稍微做了一下改动。应该使用SSH框架以后,使用的Action都写成org.springframework.web.struts.DelegatingActionProxy。所以在这种情况下Class.forName(className).newInstance() instanceof DispatchAction永远都为false.下面只把改动的代码注释出来,其它的都参考qjyong的。
Tags: Validator
如这样的500错误:No input attribute for mapping path. Validator要求页面做验证,搞笑的是这样面不是表单页,解决办法一是在struts_config.xml里加入input,网上有人是这么做的,但我觉得治标不治本。我的办法就是把所有的非表单验证页面的validator全部选成false.
OK,问题解决!
Tags: Validator
1.NewTaskGroupForm extends ValidatorForm
并且去掉validate函数
2.validation.xml:
<form name="newTaskGroupForm">
<field property="tg_name" depends="required">
<arg key="label.taskgroup.tg_name" position="0"/>
</field>
<field property="starttime" depends="long">
<arg key="label.taskgroup.starttime" position="0"/>
</field>
<field property="interval" depends="long">
<arg key="label.taskgroup.interval" position="0"/>
</field>
</form>
其中:newTaskGroupForm是抄struts-config.xml
tg_name是字段名,抄NewTaskGroupForm.java
depends="required"里required是抄validation-rules.xml
label.taskgroup.tg_name,抄ApplicationResources_zh_CN.properties
position="0"是指参数位置,用于 errors.long={0} 必须输入长整数
Tags: Validator