0

在一个动作课上,我有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。

4

1 回答 1

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")
于 2014-01-27T08:41:25.930 回答