如何验证Struts2中的空集合?

时间:2014-01-27 02:39:36

标签: java validation struts2 struts-validation empty-list

在一个动作类中,我有List类似于以下内容。

private List<SomeEntity>entity=new ArrayList<SomeEntity>();

public List<SomeEntity> getEntity()
{
    this.entity=someService.getList();  //Initialize after some ugly conditional checks, lazy loading.
    return this.entity;
}

//Setter is not required in this case.

出于某种原因,我需要在申报地点对其进行初始化。


由于此List不是null(事实上,它永远不会是null,在这种情况下),在动作方法中,如下所示的验证器,

@Validations(
        requiredFields={
            @RequiredFieldValidator(fieldName="entity", type=ValidatorType.FIELD, key="key.required")})
public String doAction()
{
    return ActionSupport.SUCCESS;
}

不起作用(我希望在这里发生验证错误,因为列表不包含任何对象,其大小为零)。

那么,如果它的大小为零,如何验证这个字段entity

我使用Struts 2.3.16。

1 个答案:

答案 0 :(得分:2)

您可以使用fieldexpression验证程序。

XML验证:

<field name="subscripcion">
    <field-validator type="fieldexpression">
        <param name="expression"><![CDATA[entity.size != 0]]></param>
        <message>...</message>
    </field-validator>
</field>

或注释:

@FieldExpressionValidator(expression = "entity.size != 0")