【问题标题】:Struts 1.3 not able to validate using xml ValidatorFormStruts 1.3 无法使用 xml ValidatorForm 进行验证
【发布时间】:2013-02-10 19:49:31
【问题描述】:

我正在制作简单的登录页面并尝试使用 struts ValidatorForm 对其进行验证,但它不起作用。但同样的代码适用于DynaValidatorForm。无法理解是什么问题。 单击登录按钮时没有显示任何错误。 这是我的代码。

login.jsp

 <body>  
    <div style="color:red">  
                <html:errors />  
            </div>  
            <html:form action="/Login" >  
                User Name : <html:text name="LoginForm" property="username" /> <br>  
                Password  : <html:password name="LoginForm" property="password" /> <br>  
                <html:submit value="Login" />  
            </html:form>  
            </body>  

LoginAction.java

public class LoginAction extends Action  

{  public ActionForward execute(ActionMapping mapping, ActionForm form,  
        HttpServletRequest request, HttpServletResponse response)  
        throws Exception {  

    LoginForm loginForm=(LoginForm) form;  
     String userName = loginForm.getUsername();  
        String password = loginForm.getPassword();  
        if(userName.equals("sumeet") )  
        {  
            return mapping.findForward("success");  
        }  
        else  
        {  
            return mapping.findForward("failure");  
        }  

struts.config

  <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">  
    <struts-config>  
    <form-beans>  
            <form-bean name="LoginForm" type="com.ibm.Forms.LoginForm" >  
            </form-bean>  
    </form-beans>  

        <global-exceptions>  
        </global-exceptions>  

        <global-forwards>  
        </global-forwards>  

        <action-mappings>  
            <action name="LoginForm" path="/Login" scope="session" input="/login.jsp" type="com.ibm.Action.LoginAction" cancellable="true" validate="true">  
            <forward name="success" path="/success.jsp"/>  
            </action>  
        </action-mappings>  

        <message-resources parameter="test2.resources.ApplicationResources"/>  
        <plug-in className="org.apache.struts.validator.ValidatorPlugIn">  
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>  
    </plug-in>  
    </struts-config>  

valdiation.xml

  <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd" >  
    <form-validation>  

    <formset>  
            <form name="LoginForm">  
                <field property="username" depends="required">  
                                </field>  

    <field property="password" depends="required,minlength">  
            <arg1 key="${var:minlength}" name="minlength" resource="false"/>  
              <var>  
              <var-name>minlength</var-name>  
              <var-value>6</var-value>  
              </var>  
              </field>  
              </form>  
           </formset>  
    </form-validation>  

谢谢。

【问题讨论】:

    标签: struts struts-1 struts-validation struts1


    【解决方案1】:

    您在 html 表单的 action 属性中缺少 .do。您不需要两个输入中的 name 属性。

    <html:form action="/Login.do" >  
        User Name : <html:text property="username" /> <br>  
        Password  : <html:password property="password" /> <br>  
        <html:submit value="Login" />  
    </html:form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2017-10-15
      • 2021-08-01
      • 2021-12-30
      • 2012-04-13
      相关资源
      最近更新 更多