我如何可以验证像Struts 2的密码和conformPassword两个领域? [英] How can I validate two fields like password and conformPassword in Struts 2?

查看:252
本文介绍了我如何可以验证像Struts 2的密码和conformPassword两个领域?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的,我想在JSP表单验证两个领域做的Web应用程序。在注册申请我有我想要验证密码,并且符合密码字段这么多fields.In。

I am doing web application in that I want to validate two fields in the JSP form. In registration filed I have so many fields.In that I want to validate password and conform password fields.

下面是我的code:

验证code在Struts2的Action类:

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

现在我怎么能验证这两个字段包含相同的数据呢?

Now how can I validate the two fields contain same data are not?

推荐答案

您可以使用非现场自定义验证程序来验证任意数量的字段。为此,你应该创建一个自定义的验证扩展 ValidatorSupport 和实施验证这是从<$ C $继承的方法C>验证接口,但没有默认实现。你应该写这个实现做自定义验证。例如,你想创建一个 RetypeValidator 这也验证了两个字段具有相同的值。它可能看起来像

You could use a non-field custom validator to validate any number of fields. For this purpose you should create a custom validator that extend ValidatorSupport and implement validate method which is inherited from Validator interface but doesn't have default implementation. You should write this implementation to do custom validation. For example you want to create a RetypeValidator which validates two fields have the same value. It could look like

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 注释。

Now, you have a custom validator name that you could use with @CustomValidator annotation.

@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}" )})
)

请注意,密码 conformPassword 是用于进行验证时解析OGNL前pressions。

Note, password and conformPassword are OGNL expressions used to parse when being validated.

这篇关于我如何可以验证像Struts 2的密码和conformPassword两个领域?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆