Validation 如何使用struts2中实现模型驱动接口的注释来实现验证?
我试图使用注释实现验证,但是这些验证不起作用,表单提交时带有空值。 我不知道缺少了什么,如何使用struts2中的注释实现验证,以实现ModelDriven接口? 这是我的struts.xmlValidation 如何使用struts2中实现模型驱动接口的注释来实现验证?,validation,struts2,model-driven,Validation,Struts2,Model Driven,我试图使用注释实现验证,但是这些验证不起作用,表单提交时带有空值。 我不知道缺少了什么,如何使用struts2中的注释实现验证,以实现ModelDriven接口? 这是我的struts.xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <stru
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="saveOrUpdateUser" method="saveOrUpdate1" class="com.vaannila.web.Userqqqq">
<result name="success" type="redirect">listUser</result>
<result name="input">/register.jsp</result>
</action>
<action name="listUser" method="list" class="com.vaannila.web.Userqqqq">
<result name="success">/register.jsp</result>
<result name="input">/register.jsp</result>
</action>
<action name="editUser" method="edit" class="com.vaannila.web.Userqqqq">
<result name="success">/register.jsp</result>
<result name="input">/register.jsp</result>
</action>
<action name="deleteUser" method="delete" class="com.vaannila.web.Userqqqq">
<result name="success" type="redirect">listUser</result>
<result name="input">/register.jsp</result>
</action>
</package>
</struts>
您需要将
@VisitorFieldValidator
注释添加到action类中的user
getter
@VisitorFieldValidator(appendPrefix = false)
public User getUser() {
return user;
}
请注意,如果您使用的字段名没有user.
前缀,则需要将appendPrefix
设置为false
此外,您可能希望在bean中使用@RequiredStringValidator
而不是@RequiredFieldValidator
@RequiredStringValidator(message = "User Name field is empty.")
@Column(name="USER_NAME")
public String getName() {
return name;
}
至少@Override没有看到任何批注,但它不是用于验证的。验证批注存在于用户类中,如@RequiredFieldValidator(type=ValidatorType.SIMPLE,fieldName=“name”,message=“用户名字段为空”)显示您的
struts.xml
文件。我已在上面添加了该文件。在单击提交之前,将显示验证button@user2077648:当然可以。您需要对某些操作方法使用@SkipValidation
注释,或者配置验证拦截器以仅验证所需的方法。
package com.vaannila.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;
import com.opensymphony.xwork2.validator.annotations.ValidatorType;
@Entity
@Table(name="USER1")
public class User {
private Long id;
private String name;
private String gender;
private String country;
private String aboutYou;
private Boolean mailingList;
@Id
@GeneratedValue
@Column(name="USER_ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "name", message = "User Name field is empty.")
@Column(name="USER_NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "gender", message = "gender field is empty.")
@Column(name="USER_GENDER")
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Column(name="USER_COUNTRY")
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
@Column(name="USER_ABOUT_YOU")
public String getAboutYou() {
return aboutYou;
}
public void setAboutYou(String aboutYou) {
this.aboutYou = aboutYou;
}
@Column(name="USER_MAILING_LIST")
public Boolean getMailingList() {
return mailingList;
}
public void setMailingList(Boolean mailingList) {
this.mailingList = mailingList;
}
}
@VisitorFieldValidator(appendPrefix = false)
public User getUser() {
return user;
}
@RequiredStringValidator(message = "User Name field is empty.")
@Column(name="USER_NAME")
public String getName() {
return name;
}