【问题标题】:How do I validate a password field in Struts 1?如何验证 Struts 1 中的密码字段?
【发布时间】:2023-04-07 01:27:01
【问题描述】:

我正在制作注册表。

我需要检查两个密码字段是否相同。

<validator name="twofields"
           classname="com.mysite.StrutsValidator"
           method="validateTwoFields"
           msg="errors.twofields"/>

<field property="password"
       depends="required,twofields">

    <arg position="0" key="typeForm.password.displayname"/>
    <var>
       <var-name>secondProperty</var-name>
       <var-value>password2</var-value>
    </var>
</field>

方法

public class StrutsValidator {

    public static boolean validateTwoFields(
            Object bean,
            ValidatorAction va,
            Field field,
            ActionErrors errors,
            HttpServletRequest request,
            ServletContext application) {

        String value = ValidatorUtils.getValueAsString(
            bean,
            field.getProperty());
        String sProperty2 = field.getVarValue("secondProperty");
        String value2 = ValidatorUtils.getValueAsString(
            bean,
            sProperty2);

        if (!GenericValidator.isBlankOrNull(value)) {
            try {
                if (!value.equals(value2)) {
                    errors.add(field.getKey(),
                               Resources.getActionError(
                                   application,
                                   request,
                                   va,
                                   field));

                    return false;
                }
            }
            catch (Exception e) {
                errors.add(field.getKey(),
                           Resources.getActionError(   //This line is giving an error.
                               application,
                               request,
                               va,
                               field));
                return false;
            }
        }
        return true;
    }
}

我试过这个,但它给出了一个错误。方法 getActionError(ServletContext, HttpServletRequest, ValidatorAction, Field) 没有为资源类型定义。

【问题讨论】:

    标签: java struts struts-1 struts-validation


    【解决方案1】:

    您的确切 Struts 版本是什么?至少根据Struts 1.1 API documentationResources.getActionError方法签名如下:

    getActionError( 
        javax.servlet.http.HttpServletRequest request,   
        org.apache.commons.validator.ValidatorAction va,
        org.apache.commons.validator.Field field
    )
    

    这表明您需要从方法调用中删除应用程序参数:

    errors.add(
        field.getKey(),
        Resources.getActionError(
            request,
            va,
            field));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      相关资源
      最近更新 更多