在一个动作类中,我有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。
答案 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")