我正在做Web应用程序,因为我想验证JSP表单中的两个字段。在注册档案中,我有很多字段。我想验证密码和符合密码字段。
以下是我的代码:
Struts2操作类中的验证码:
@Length(min = 6, max = 20)
@Column(name = "PERSON_PASSWORD", nullable = false, length = 20)
public String getPassword() {
return password;
}
@Length(min = 6, max = 20)
@Column(name = "PERSON_CONFORMPASSWORD", nullable = false, length = 20)
public String getConformPassword() {
return conformPassword;
}
现在我该如何验证包含相同数据的两个字段不是?
答案 0 :(得分:3)
您可以使用非字段自定义验证程序验证任意数量的字段。为此,您应该创建一个扩展ValidatorSupport
并实现validate
方法的自定义验证程序,该方法继承自Validator
接口,但没有默认实现。您应该编写此实现来进行自定义验证。例如,您要创建一个RetypeValidator
来验证两个字段具有相同的值。它可能看起来像
public class RetypeValidator extends ValidatorSupport {
private String value = null;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
private String retypeValue = null;
public String getRetypeValue() {
return retypeValue;
}
public void setRetypeValue(String value) {
retypeValue = value;
}
@Override
public void validate(Object object) throws ValidationException {
String value = (String) parse(this.value, String.class);
String retypeValue = (String) parse(this.retypeValue, String.class);
if (value != null && retypeValue != null && !value.equals(retypeValue))
addActionError(getDefaultMessage());
}
}
然后您必须将此验证器添加到validators.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator Config 1.0//EN"
"http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd">
<validators>
<validator name="retypeValidator" class="org.custom.struts.vaidators.RetypeValidator"/>
</validators>
现在,您有一个可以与@CustomValidator
注释一起使用的自定义验证器名称。
@Validations(
customValidators = @CustomValidator(type="retypeValidator", message="the value and retype value should be the same",
parameters = { @ValidationParameter( name = "value", value = "${password}" ), @ValidationParameter( name = "retypeValue", value = "${conformPassword}" )})
)
注意,password
和conformPassword
是用于在验证时解析的OGNL表达式。
答案 1 :(得分:1)
您可以使用if语句进行比较
if(password == conformPassword)
{
//TO-DO
}
else
{
//TO-DO
}
答案 2 :(得分:0)
if(getPassword().equals(getConformPassword()){
{
//code
}