在使用struts中为了方便调试通常strutsproperties文件中把开发模式设置为true当表单里面的数据为空的时候提交由于配置了validation校验框架页面被拦截有提示信息控制台输出如下
:: comopensymphonyxworkinterceptorParametersInterceptor setParameters
严重: ParametersInterceptor [setParameters]: Unexpected Exception caught setting age on class orgmmcstrutsactionRegisterAction: Error setting expression age with value [LjavalangString;@b
:: comopensymphonyxworkvalidatorActionValidatorManagerFactory <clinit>
信息: Detected AnnotationActionValidatorManager initializing it
控制台出错信息分析由于配置文件中继承了strutsdefaultxml文件其中strutsdefaultxml中的代码片段为
<interceptor name=params class=comopensymphonyxworkinterceptorParametersInterceptor/>
由于配置了validation校验框架部分片段
<fieldname=age>
<fieldvalidatortype=required>
<message>ageshouldnotbeblank!</message>
</fieldvalidator>
<fieldvalidatortype=int>
<paramname=min></param>
<paramname=max></param>
<message>ageshouldbebetween${min}and${max}</message>
</fieldvalidator>
</field>
原因是输入类型不匹配这个出错信息是由于开发模式设置为true把开发模式设置为false就不会产生这个错误信息这个是LOG给的控制台错误方便用户调试使用并不影响程序的正常运行
原文