Validation 如何使用struts2中实现模型驱动接口的注释来实现验证?

Validation 如何使用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

我试图使用注释实现验证,但是这些验证不起作用,表单提交时带有空值。 我不知道缺少了什么,如何使用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">

<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;
}