動作類有一個屬性需要驗證。該屬性是一個類(MyClass1),其中一個屬性也是一個類(MyClass2)。Struts 2中的鏈接訪問驗證器
要驗證的每個類都將被多個操作使用,所以我爲每個類定義了「MyClass * -validation.xml」。
我遇到的問題是試圖使用MyClass1中的訪問驗證器來驗證MyClass2。
MyAction-validation.xml中:
<validators>
<field name="class1">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>
MyClass1的-validation.xml中:
<validators>
<field name="class2">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>
MyClass2-validation.xml中:
<validators>
<field name="myInt">
<field-validator type="conversion">
<message>myInt conversion</message>
</field-validator>
</field>
</validators>
如果我使用field class.class2.myInt =「a」提交表單,fieldErrors()不包含轉換錯誤,正如我的預期。
是否可以無限期鏈接訪客驗證器,或者是最高級別的訪問者級別?如果可能的話,我做錯了什麼?
不良(在我看來)的解決方案/解決方法:由於我無法弄清楚我在做什麼錯了,我終於試過鏈從MyClass1的-validation.xml來MyClass2-validation.xml中的驗證,而是改變MyAction-validation.xml中的定義:()fieldErrors(現在包含轉換錯誤)
<validators>
<field name="class1.class2">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
<field name="class1">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>
這種變化解決的問題,但我會很喜歡能鏈作爲校驗是我最初的意圖。
+1,很好的問題。解決方法是相同的,我想在閱讀你的問題的幾行後寫在一個答案:) –
我已經創建了這個jira問題:https://issues.apache.org/jira/browse/WW-4346 。 –