2010-08-04 16 views
0

我創建了一個具有登錄頁面和另一個用戶詳細信息頁面的struts2應用程序。在那裏,我需要創建一個動作類。因此,我無法通過將兩個頁面中的字段驗證添加到action-validation.xml來運行該應用程序。因爲使用登錄頁面驗證,它將驗證validation.xml中的剩餘字段驗證(屬於用戶詳細信息頁面的字段驗證)。如何編寫一個動作類和action-validation.xml來通過struts2驗證兩個不同的jsp頁面中的兩個表單

因此,請分享您在struts2中的知識,使用action-validation.xml中的一個動作類進行兩頁(表單)驗證。

回答

0

可以使用wildcard mappingsassociating your validation rules與單一動作類做到這一點:

通配符映射

在你的struts.xml中,定義了以下這樣一個動作:

<action name="user-*" class="DoSomething" method="{1}" > 
    <result name="input">/WEB-INF/{1}.jsp</result> 
    <result name="success">/WEB-INF/{1}-success.jsp</result> 
</action> 

然後您可以使用以下兩個URL中的任意一個調用DoSomething動作類:

http://yourapp.com/user-login.action 
http://yourapp.com/user-details.action 

結果將會是連字符後面的部分(「登錄」或「詳細信息」)將取代您的動作定義中的{1}。因此,第一個URL將調用DoSomething.login()方法,轉到INPUT上的login.jsp或SUCCESS上的login-success.jsp。

您只需要在DoSomething類中定義login()details()方法。

驗證規則協會

爲了驗證規則與DoSomething動作類關聯,簡單地命名包含它們DoSomething的-validation.xml中 .xml文件。由於用戶登錄和用戶詳細信息請求都使用該類,因此這兩個規則將運行。

+0

謝謝帕特我會檢查這一點。 – 2010-08-08 09:32:53

相關問題