我正在使用Struts 2和REST插件。 Struts 2中的驗證是ClassName-actionAlias-validation.xml。但是,使用REST插件時,操作別名始終爲/。例如OrdersController - >/orders - > OrdersController -order-validation.xml。 如何根據REST方法獲得不同的驗證?主要是,我想要一種類型的update()方法的驗證,另一種是create()方法。Struts 2 REST和驗證
1
A
回答
1
您考慮過using annotations for the validations嗎?這使得將它們與正確的方法聯繫起來更簡單。
0
啊,我不知道你可以使用基於特定方法的基於註解的驗證。我還沒有使用過Struts。謝謝!
但是,我確實必須修改我的struts.xml以允許對不同方法進行不同的驗證(validateAnnotatedMethodOnly必須爲true)。下面是它的樣子:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.convention.action.suffix" value="Controller" />
<constant name="struts.convention.action.mapAllMatches" value="true" />
<!-- Set to "default" instead of "rest-default" -->
<constant name="struts.convention.default.parent.package"
value="default" />
<constant name="struts.convention.package.locators" value="rest" />
<package name="default" extends="rest-default">
<interceptors>
<interceptor-stack name="restDefaultStack">
<interceptor-ref name="exception" />
<interceptor-ref name="alias" />
<interceptor-ref name="servletConfig" />
<interceptor-ref name="messages">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<interceptor-ref name="prepare" />
<interceptor-ref name="i18n" />
<interceptor-ref name="chain" />
<interceptor-ref name="debugging" />
<interceptor-ref name="profiling" />
<interceptor-ref name="actionMappingParams" />
<interceptor-ref name="scopedModelDriven" />
<interceptor-ref name="modelDriven">
<param name="refreshModelBeforeResult">true</param>
</interceptor-ref>
<interceptor-ref name="fileUpload" />
<interceptor-ref name="checkbox" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="params">
<param name="excludeParams">dojo\..*</param>
</interceptor-ref>
<interceptor-ref name="rest" />
<interceptor-ref name="conversionError" />
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse,index</param>
<!-- Modified! -->
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor-ref>
<interceptor-ref name="restWorkflow">
<param name="excludeMethods">input,back,cancel,browse,index</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
</package>
</struts>
相關問題
- 1. Struts 2驗證器
- 2. Struts 2 XML驗證
- 3. Struts 2註釋驗證
- 4. Struts 2驗證參數
- 5. 驗證問題Struts中2
- 6. Struts 2驗證中的奇怪行爲
- 7. Struts 2 datepicker與時間驗證
- 8. Struts 2驗證字段是否爲空
- 9. Struts 2驗證清除url參數
- 10. Struts 2的驗證概念的理解
- 11. Struts 2驗證 - 清除錯誤信息
- 12. Struts 2自定義驗證器問題
- 13. Struts 2的XML驗證工作不`噸
- 14. Struts 2驗證使用註釋
- 15. 在struts 2中顯示驗證消息
- 16. Struts 2的驗證上選擇框
- 17. 將REST與Struts 2集成
- 18. 如何在Struts 2驗證框架中驗證布爾型
- 19. Struts驗證錯誤
- 20. Struts 2的驗證和輸入框覆育
- 21. Struts 2驗證問題 - 未映射util.js和validation.js的動作
- 22. 身份驗證和REST
- 23. 運行Struts 1和Struts 2
- 24. 在MVC中驗證REST請求2
- 25. Restful webservices Struts 2
- 26. Struts 2和Websockets
- 27. Struts驗證 - 結合requiredif和mask
- 28. 如何用struts驗證XML
- 29. Struts Ajax表單驗證
- 30. Struts 1.2 intRange驗證失敗