2012-08-17 35 views
2

我有一個maven多模塊項目。Struts 2驗證失敗時Action類坐落在一個單獨的jar文件

project-services (service layer..above the dao layer) 
project-controller (My Action classes sits in this module) 
project-web (all jsps, view artificats) 

的問題是我在包DefaultProjectsAction.java有效DefaultProjectsAction-validation.xml中還有屬性文件。

所有這些模塊在部署war文件時都將位於/ WEB-INF/lib中。我在struts.xml中使用默認包。所有文件都正確設置。拼寫錯誤的文件名正確檢查。如果驗證xml文件位於單獨的jar中,我的struts驗證是否可用?我在某處他們說它應該在WEB-INF/classes /中。這就是爲什麼我的struts表單無法驗證的原因嗎?

+0

驗證的文件*應*搜索因爲在課堂上,儘管我從來沒有嘗試過。如果你創建一個小的github項目,重新創建問題,我會看看。從Web模塊中分離動作似乎有點奇怪,除非你真的在網絡之外使用控制器。 – 2012-08-17 13:44:48

+0

感謝您的回覆。動作類分開的原因是因爲我正在使用現有的視圖工件,並且控制器(在本例中是在Struts 2中)被告知將它們放入它們自己的模塊中。現在已經有兩天時間試圖解決這個問題。文檔不多說。但肯定在 -validation.xml與Action中的相同包中它們都在類路徑中。我正在考慮使用全局驗證,我將直接放在/ WEB-INF/classes / – 2012-08-17 17:53:45

回答

2

好吧,自從我開始研究這個問題以來已經有48個小時了,女士們,先生們已經找到了解決方案。

將struts 2動作類放在一個單獨的模塊上,驗證設置必須如此。

project-controller (will have action classes for Struts 2 in this case) 
- com.pack.UserAction.java 

的解決方案是建立在項目的Web模塊源文件夾的src /主/資源/ COM /包(Maven項目),並把UserAction-validation.xml中在那裏。像這樣

project-web (views, jsps, properties files and set-up files) 
- src/main/resources/com/pack/UserAction-validation.xml 

該文件將被複制到/ WEB-INF /班/ COM /包(動作類包應該形成路徑)和建設項目