【问题标题】:validate form struts2 manage INPUT验证表单 struts2 管理 INPUT
【发布时间】:2016-03-24 14:42:43
【问题描述】:

我有一个问题:在验证表单后,我会在 Java 中检查表单是否有效,如果它无效,我会返回错误。

显示错误文本,但我无法验证我的表单并重新检查我的表单。

struts.xml:

<action name="validerInscription" class="utilisateurAction" method="validerInscription">
    <result name="success" type="redirect">home</result>
    <result name="error"   type="redirect">inscription</result>
    <result name="input"   type="redirect">inscription</result>
</action>

行动:

public String validerInscription() {
    logger.info("VALIDATION INSCRIPTION");
    boolean isInscriptionReussie = false;

    if (verificationFormulaire() == true) {
        utilisateur.setImage("image/avatar/avatar1.png");
        isInscriptionReussie = utilisateurService.sauvegarderUtilisateur(utilisateur);
        session.put("user", utilisateur); // Ajouter utilisateur a la session
    } else {
        logger.info("--- INSCRIPTION => RETURN INPUT");
        return INPUT;
    }

    if (isInscriptionReussie) {
        logger.info("INSCRIPTION REUSSIE");
        return SUCCESS;
    } else {
        logger.info("INSCRIPTION ERROR");
        return ERROR;
    }
}

【问题讨论】:

    标签: java forms validation jsp struts2


    【解决方案1】:

    您完全绕过了框架验证功能,即用型,工作方式如下:

    当一个 JSP 调用一个动作时,请求在到达动作之前会经过一个拦截器栈;每个拦截器都会做一些事情,比如设置参数、验证它们等等。

    如果拦截器有错误,它会抛出异常或 INPUT 结果,具体取决于拦截器,并且不会到达该操作,因为新响应将从该拦截器开始到映射到异常的结果或输入结果。

    Validation Interceptor 使用 XML 验证文件,或validate() 方法,或其他方式,如果添加了fieldError(在validate() 中手动添加,或通过 XML 或注解自动添加),它将返回输入结果。

    INPUT 结果应该是简单的dispatcher 结果(默认),而不是redirect

    那么你应该这样做:

    <action name="validerInscription" class="utilisateurAction" method="validerInscription">
        <result name="success" >home.jsp</result>
        <result name="error"   >inscription.jsp</result>
        <result name="input"   >inscription.jsp</result>
    </action>
    
    // This will be run by the Validation Interceptor
    public void validate(){
        logger.info("VALIDATION INSCRIPTION");
        // Here you need to do the checks done in verificationFormulaire(), 
        // adding fieldErrors in case they fails
        if (firstName==null){
            addFieldError("firstName", "First name can't be null");
        }
        if (lastName==null){
            addFieldError("lastName", "Last name can't be null");
        }
        // etc...
    }
    
    // If you reach this, validation has passed
    public String validerInscription() {
    
        utilisateur.setImage("image/avatar/avatar1.png");
        session.put("user", utilisateur); // Ajouter utilisateur a la session
    
        if (utilisateurService.sauvegarderUtilisateur(utilisateur)) {
            logger.info("INSCRIPTION REUSSIE");
            return SUCCESS;
        } else {
            logger.info("INSCRIPTION ERROR");
            return ERROR;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多