2010-11-03 112 views
1

我想在使用struts的彈簧窗體上做一些半複雜的驗證。Struts驗證器validwhen(* this * == null)不能按預期工作

根據struts用戶指南,在validwhen子句中測試null值爲空字符串或空值。

因此,我期望以下檢查只有當test是空字符串或null時才能成功。

<field property="test" depends="validwhen"> 
     <msg name="validwhen" key="error.test"/> 
     <arg position="0" key="testForm.test"/> 
     <var> 
      <var-name>test</var-name> 
      <var-value>(*this* == null)</var-value> 
     </var> 
    </field> 

我看到它在輸入值爲空時工作。但如果我從表單刪除輸入(我認爲這將然後映射到一個空值),它會失敗...

有誰知道如何使用struts驗證器來測試沒有字段提交的表單?

我在Struts 1.3.8上。

如果有人想知道爲什麼我需要測試這一點,我要尋找結束的邏輯是這樣的:

if(radio fieldA is present and true){ 
fieldB is required 
}else{ 
fieldB not required 
} 

感謝

回答

1

你應該檢查你的radiofield真的爲null,或者它帶來了一些值作爲空白字符串或真/假

+0

是的,原來在窗體支持對象上的字段是布爾型的主要類型,因此永遠不能爲空! – Chris 2010-11-11 09:00:43