BeanValidation不适用于Radio Buttons

时间:2014-09-12 15:09:18

标签: java spring-mvc spring-webflow bean-validation liferay-aui

我正在使用SpringWebFlow创建一个portlet,这个portlet有一个JSP,它有一些输入字段,一些下拉菜单和几个单选按钮,我使用了BeanValidation,注释如@NotNull和@NotEmpty工作正常,可用于下拉和输入字段,但注释不适用于RadioButton , 在我的JSP中我有这个代码

<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不是工作意味着他们没有得到验证,所以即使他们没有被选中,用户也可以进入下一页......

你们中的任何人能指导我朝正确的方向前进吗?

1 个答案:

答案 0 :(得分:0)

为辅助bean设置的性别值是多少。 Bean Validation并不关心它获取数据的位置。它对下拉和单选按钮一无所知。有趣的是调用验证时bean中的不同值是什么。如果没有异常而且没有约束违规,我会假设性别既不是空也不是空。例如,它可以是一个空格。 @NotEmptyNotBlank之间存在差异。后者也会检查空格字符。