关于Struts2输入校验的问题!

我使用的是局部和全局的资源文件 ,当输入年龄为abc的时候输出自定义的错误提示,在注册的Action的资源文件里面,我写了invalid.fieldvalue.age=age conversion error,经过测试,页面没有显示,还是显示的Struts2自己的那种错误提示,后来我又使用了全局的资源文件message.properties 内容为xwork.default.invalid.fieldvalue={0} error 结果还是不出来我的自定义信息,后来我以为是架包不正确,把2.2的换成了2.0的再实验,还是没有出来,我就很奇怪了,求帮助!

如果age属性是直接定义在action类中的话,属性文件应这么写,invalid.fieldvalue.age=age should be a integer,如果age是定义在一个JavaBean中,比如User中有age属性,而在action类中引用的是User user对象的话,那么属性文件应这么写,invalid.fieldvalue.user.age=age should be a integer追问

我使用局部资源成功了,全局的还是不成功的。不知道为什么

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-31
呃,这种方式我几乎都忘记了,那个struts2里面不是有个自带的验证框架吗?我觉得那个比较好用,能解决一般的验证问题,验证文件格式:Action类名-validation.xml,还有我的两个例子,望采纳

验证手机号:
<field name="phone">
<field-validator type="regex">
<param name="expression">
<![CDATA[(1[358]\d\d{8})]]>
</param>
<message>只接受手机号</message>
</field-validator>
</field>

验证姓名:
<field name="ename" >
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>员工姓名不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">20</param>
<message>员工姓名必须在${minLength}-${maxLength}个字符之间</message>
</field-validator>
</field>
第2个回答  2011-04-02
页的这个action和处理注册的action是不是同一个Action
2、如果是同一个aciton,那么只要访问了这个action就会验证,验证可以是validate()方法或者xml配置的验证
3、最好的方法就是直接链接到注册页面,不用通过action
4、或者通过默认的action来进行跳转。如下:
<action name="gotoRegister">
<result>register.jsp</result>
</action>
另外,虚机团上产品团购,超级便宜

struts2中输入校验的实现方法有哪些
struts中提供两种校验方法:硬编码和校验框架;硬编码就是直接写validate()进行验证,validate()方法对应execute()方法。在action里也可以重新定义method方法,这样在对应的逻辑处理类中直接定义该方法对应的validate()方法。如定义了方法abc()public String abc(){ System.out.print("hello");return SUCCE...

struts2校验出错
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.Security.Cryptography.CryptographicException: 要解密的数据的长度无效。源错误:执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定...

struts2做了一个很简单的页面校验跳转程序,出现以下错误
缺少ognl.jar包,使用struts2至少要导入commons-fileupload.jar ,commons-io.jar, freemarker.jar,struts2-core.jar,xwork-core.jar,ognl.jar这些包,有些版本可能还需要其他jar包

为什么我的struts2校验框架,输入正确的值,仍然不能同过校验器呢?
因为你使用对象的方式接受用户的输入数据 只要在验证前加上 <field> <field-validator type="visitor"> <message><\/message> <\/field> 就可以了

struts2 登陆时怎样在本页面提示密码输入错误啊??(用验证框架),望给出...
<field name="username">\/\/要校验的字段名(密码校验把此改为pwd即可)<field-validator type="requiredstring">\/\/不许为空 <message>no null<\/message>\/\/错误提示 <\/field-validator> <\/field> 二、struts2配置文件 <struts> <package name="default" extends="struts-default"> <action name="...

Struts2的校验的执行顺序,先执行手动的输入校验,然后执行框架校验
)方法里的验证,例如在struts.xml中配置action的method方法为test,则执行validateTest()方法里的验证,method的值默认是execute,执行的是validate()方法的验证,即第4条的内容 ④执行validate()方法的验证 所以,大体上来说,是先执行框架校验的,因此你题目里那句话是错误的。

为什么在用struts2框架进行校验时校验信息在控制台输出而不能显示到...
xxxx-xx_x-validation.xml 你加了针对验证的XML没有 比如 这个 <field name="userDTO.userInfo.loginName"> <field-validator type="requiredstring"> <message>用户名不能为空<\/message> <\/field-validator> <\/field> 注意这个name属性 跟下面的value属性 对应上了没。 就这样就Ok了 ...

struts2 如何设置输入效验信息显示红色?
struts2的默认错误显示的class是errorMessage,你可以在style.css中加上:.errorMessage { color : red;} 还有一种方法就是,把错误信息放到一个DIV中,把DIV的class设置为你自己定义的样式

struts2 validate问题?
是不是进入了循环,如对登录action也进行了登录校验,(或设置了全局登录校验,包含登录action),当访问登录action时,在登录action被执行之前,就进行登录校验,结果验证该用户没有登录,又进入登录页面。

在项目中,struts校验一般用哪种方式?xml?还是valdate()函数,还是直接自...
二. 输入校验流程: 1. 类型转换器负责对字符串的请求参数执行类型转换。并将这些值设置成Action的属性值。 2. 转换过程中若出现异常,则将异常信息保存到ActionContext中,conversionError拦截器将其封装到fieldError中。 3. 通过反射调用validateXxx()方法。 4. 调用validate(). 5. 如果未出现异常,则转入用户请求的...

相似回答