问题描述:
既然你找到这篇文章,相信你也是在使用Struts2的Conversion机制的时候出现了问题,具体代码这里不列出来了,Tomcat的console输入如下:
警告: Error setting expression 'user.age' with value '[Ljava.lang.String;@7787a5'
ognl.MethodFailedException: Method "setAge" failed for object 用户名: null
密码: null
年龄:0
地址:
[java.lang.NoSuchMethodException: com.ericsson.ewanbao.common.User.setAge([Ljava.lang.String;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
........
原因分析:
在User这个类中定义age的方法如下:
int age;
如果修改为如下方式:
Integer age;
问题解决。可以看出来Conversion转换的时候从String往int转换有问题。