2014-09-12 73 views
0

我創建了一個使用SpringWebFlow的portlet,這個portlet有一個包含一些輸入字段,一些下拉列表和幾個單選按鈕的JSP,我已經使用了BeanValidation和@NotNull和@NotEmpty之類的註釋。爲下拉菜單和輸入字段,但註釋工作正常,沒有爲單選, 工作在我的JSP我這個代碼BeanValidation不適用於單選按鈕

<aui:field-wrapper name="gender"> 
    <aui:input inlineLabel="right" name="gender" type="radio" value="male" label="male" checked="${surveyBean.gender == 'male' ? 'true' : 'false'}"/> 
    <aui:input inlineLabel="right" name="gender" type="radio" value="female" label="female" checked="${surveyBean.gender == 'female' ? 'true' : 'false'}" /> 
</aui:field-wrapper> 

在我PageBean我有下面的代碼

@NotNull 
@NotEmpty 
public String getGender() 
{ 
    return gender; 
} 

我想要的是用戶不應該留下任何空白或未選中的字段,對於輸入字段和下拉列表,適當的錯誤消息顯示在Validation.properties文件中,如果它們留空,對於單選按鈕@NotNull和@NotEmpty不起作用他們沒有得到驗證,所以即使他們沒有被選中用戶是否能夠進入下一頁...

請問你們任何人,請指導我在正確的方向?

回答

0

爲後臺bean設置的性別值是什麼。 Bean Validation不關心它從哪裏獲取數據。它不知道有關下拉和單選按鈕的任何信息。有趣的事情是在調用驗證時,bean中不同的值。如果沒有例外而不是約束違規,我會認爲性別既不爲空也不爲空。它可以是一個空白字符。 @NotEmptyNotBlank之間有區別。後者也會檢查空白字符。

+0

我檢查過,當單選按鈕沒有被選中時,它的值被設置爲** null **。我寫了一個自定義註釋來檢查它的值,它顯示值爲null,'isValid'方法返回false,問題似乎是MessageInterpolator,它以某種方式拋出空指針異常...你知道它是否可以是因爲BeanValidation是無法確定將錯誤消息放置在哪裏,因爲單選按鈕的編號是兩個,名稱和ID相同?可能這就是這種不同行爲的原因,因爲其他表單字段的驗證完全正確嗎?謝謝 – user3367569 2014-09-14 07:37:14

+0

我想我已經找到問題的根源,在這裏發佈了一個新問題 - http://stackoverflow.com/questions/25831742/radio-button-field-not-found-in-portletrequest-getparametermap – user3367569 2014-09-14 09:08:37

相關問題