我有一個問題,struts2驗證器(我新的struts2)。Struts 2驗證器
我在我的頁面上有2個按鈕,每個按鈕驗證2個常用規則,第二個按鈕添加另一個特定規則。
這裏是我的配置:
我的行爲是VPJ001Action.java
struts.xml
配置文件是這樣的:
<action name="VPJ001" class="VPJ001Action">
<result>/jsp/test.jsp</result>
</action>
<action name="VPJ001ValidationAction" method="validation" class="VPJ001Action">
<result name="PAGE_VPJ002" type="chain">VPJ002!execute</result>
<result>/jsp/test1.jsp</result>
</action>
<action name="VPJ001DiffusionMailAction" method="diffusionMail" class="VPJ001Action">
<result>/jsp/test.jsp</result>
</action>
我的第一個按鈕調用VPJ001ValidationAction
,第二個調用VPJ001DiffusionMailAction
我的驗證器配置:
VPJ001Action-validation.xml
包含2個公共規則:
<validators>
<field name="bassin">
<field-validator type="required">
<message key="validation.bassin.requis"/>
</field-validator>
</field>
<field name="moisAValider">
<field-validator type="required">
<message key="validation.mois.requis"/>
</field-validator>
</field>
</validators>
和
VPJ001Action-VPJ001DiffusionMailAction-validation.xml
包含的具體規則:
<validators>
<field name="moisAValider">
<field-validator type="regex" short-circuit="true">
<param name="expression">.*[\*]$</param>
<message key="validation.mois.valide"/>
</field-validator>
</field>
</validators>
下面是結果:
當我點擊2個按鈕,我有一個2 commons規則彈出,因爲我不選擇任何東西在頁面上,它的工作正常。
當我選擇一個臉盆和一個moisAValider如果我上的驗證按鈕點擊,一切正常,IM重定向良好的網頁
,當我選擇一個臉盆,如果我點擊diffusionMailbutton一個moisAValider,頁面刷新和彈出與我的具體規則(正則表達式不尊重)打開,但頁面已被重新加載!
我想有這樣的場景:
如果我在沒有任何選擇的驗證按鈕點擊,我想不尊重
的2條公共規則彈出,如果我點擊diffusionMailButton沒有選擇任何東西,我想要一個不尊重2共同規則的彈出窗口,並且具體的規則,
是否有可能?
我希望驗證的具體規則將在客戶端完成,而不是在服務器端,因爲如果它在服務器端完成,頁面重新加載,我所有的列表都是空的...我需要重新加載所有列表和它不是必要的,如果所有驗證器都可以在客戶端完成...
感謝您的幫助!
如何在同一時間點擊2個按鈕? –
你在哪裏看到我想同時點擊2個按鈕?我講兩個不同的按鈕。驗證按鈕和擴散郵件按鈕;),每個人都有2個公共驗證器在第二個另一個驗證 –
我沒有看到他們中的任何一個,你也可以改變這個問題,這將是一個按鈕? –