2014-01-27 3 views
0

В классе действий у меня есть List что-то вроде следующего.Как проверить пустую коллекцию в Struts2?

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.

ответ

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") 
Смежные вопросы