struts2中Action里一个类型为int的属性接收参数时发生奇怪问题。
jsp页面:
有一个<input type="text" name="age"/>
action里面:
int age;
validateAdd(){
验证age的属性格式,不对就转发到input
}
setAge()
...
getAge()
...
问题是:
当我不输入age的内容的时候,或者输入的是非数字的时候,后台先报错误信息,然后才进行valiedate方法!!
也就是说jsp页面传递的参数它先设置到age里,然后才进行验证,但是现在设置这一步直接就错误了,岂不是valieda没什么意义了?
而且日志文件也无关紧要的增长了很多。
这个问题如何解决??
谢谢!
------解决方案--------------------struts2先进行类型转换,在进行输入校验,类型转换错误,不影响输入校验。
------解决方案--------------------首先第一可以试着将age改成string
再<input type="text" name="age" value=""/>
------解决方案--------------------最好age用Integer,不用int,因为类型转换错误input,用int类型 age=0
------解决方案--------------------在你的Action(比如:TestAction)目录下,创建TestAction.properties
在其中写上:
invalid.fieldvalue.age = 年龄输入格式不正确!
就可以了啊。