關于struts2的幾個問題
最近正在用struts+spring+jpa開發項目,看到這篇文章,轉在這里,有備無患。原文地址:http://www.aygfsteel.com/apple0668/archive/2008/12/03/244209.html
作者:apple0668
關于開發模式引發的問題:
在使用struts2中,為了方便調試,通常struts.properties文件中把開發模式設置為true。當表單里面的數據為空的時候提交,由于配置了validation校驗框架,頁面被攔截,有提示信息。控制臺輸出如下:
2008-12-3 21:10:39 com.opensymphony.xwork2.interceptor.ParametersInterceptor setParameters
嚴重: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'age' on 'class org.mmc.struts2.action.RegisterAction: Error setting expression 'age' with value '[Ljava.lang.String;@b70648'
2008-12-3 21:10:39 com.opensymphony.xwork2.validator.ActionValidatorManagerFactory <clinit>
信息: Detected AnnotationActionValidatorManager, initializing it...
控制臺出錯信息分析:
由于配置文件中繼承了struts-default.xml文件
其中struts-default.xml中的代碼片段為:
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>
由于配置了validation校驗框架部分片段:
原因是輸入類型不匹配,這個出錯信息是由于開發模式設置為true,把開發模式設置為false就不會產生這個錯誤信息。這個是LOG給的控制臺錯誤,方便用戶調試使用,并不影響程序的正常運行。











另外
Struts2基于注解的校驗默認是對一個Action(也就是對一個Class的校驗),但有些時候單獨需要驗證其中的一個Method,這個時候就需要修改下默認的Validation攔截器.具體代碼如下:







