我在网络应用程序中使用 struts 2.2.3 。我想对从UI提交的表单数据使用基于struts2注释的验证。场景是: 用户填写所有表单域,然后单击“提交”按钮。 我创建了一个Person类来存储注册表单数据和RegistrationAction,它触发了注册逻辑。 RegistrationAction持有对具有受尊重的getter / setter的person对象的引用。 请使用struts 2注释建议如何在表单提交后验证Person类的各个字段。
感谢。
答案 0 :(得分:1)
尝试使用fieldName
注释的Validations
属性进行创建。如下所示:
@Validations(
requiredFields =
{@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "person.name", message = "You must enter a value name.")}
)
请参阅以下链接以获取更多参考:
答案 1 :(得分:1)
在setter方法上使用
@RequiredFieldValidator(type=ValidatorType.FIELD, message="your message here")
@Validations的@Validator(...)没有必要
答案 2 :(得分:0)
您是否尝试过Struts2验证注释。它非常简单直接您需要的是在类级别定义@Validation()
注释并根据您的用例应用标准或自定义注释。
参考官方注释验证文件。
答案 3 :(得分:0)
你提到了一个单独的Person
类,所以我猜这是一个模型驱动的Action或在Action类中使用类似setPerson
的函数。如果要验证Person
中的各个字段,则需要在相关的Action方法中使用VisitorFieldValidator
,然后在Person对象本身上放置字段验证。
例如在Action
中@VisitorFieldValidator(message = "")
public void setPerson(Person person) {
this.person = person;
}
并在Person
@RequiredFieldValidator(message = "Last name is required.")
public void setLastName(String lastName) {
this.lastName = lastName;
}