读书人

struts2中Action里一个类型为int的属性

发布时间: 2012-09-27 11:11:17 作者: rapoo

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 = 年龄输入格式不正确!

就可以了啊。

读书人网 >J2EE开发

热点推荐