struts2之二(输入校验)

校验分为前台输入校验和后台服务器端校验,所以后台校验是最后一道屏障也是极其重要的!

  • 流程如下:
    先一个简单的jsp页面 ,然后直接提交给后台程序处理  ,最后返回到结果页面

步骤一:配置struts2框架(参照struts之一)

步骤二:配置struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
        <package name="struts" extends="struts-default">
            <action name="register" class="com.action.RegisterAction">
                <result name="success">/success.jsp</result>
                <result name="input">/fail.jsp</result>
            </action>
        </package>
    </struts>

上面的:

<result name="success">/success.jsp</result>是action类中execute()方法返回SUCCESS时会转到success.jsp页面

<result name="input">/fail.jsp</result>是在jsp提交给某Action时,自动调用Set方法或校验时任何一个环节出错抛出异常了就会返回input,这里指定input所转向的页面为fail.jsp

步骤三:建立RegisterAction.java

package com.action;
import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport {
    private String username;
    private String password;

    public void setUsername(String username) {//jsp请求到action后自动调用该对应的Set方法赋值
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }

}


步骤四:校验在RegisterAction.java目录下建立一个RegisterAction—validation.xml文件,struts框架会中识别这个文件,在适当的时候调用它,其内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator 1.0.2//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>

    <field name="username">
        <field-validator type="requiredstring">
            <message>username can't be blank!</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="minLength">4</param>
            <param name="maxLength">7</param>
            <message>length of username should be between ${minLength} and 7</message>
        </field-validator>
    </field>
    <field name="password">
        <field-validator type="requiredstring">
            <message>password can't be blank!</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="minLength">4</param>
            <param name="maxLength">7</param>
            <message>length of password should be between ${minLength} and 7</message>
        </field-validator>
    </field>

</validators>

上面的意思大家应该看得懂吧,requiredstring的意思是不能为空!

步骤五:jsp页面

register.jsp

<body>
  <form action="register.action">
   usenrame:<input type="text" name="username"><br>
   password:<input type="text" name="password"><br>
   <input type="submit">
   </form>
  </body>

fail.jsp

<%@ taglib prefix="s" uri="/struts-tags" %><!-- 记得加上struts标签库-->

<body>
  <s:fielderror cssStyle="color:blue"></s:fielderror><!-- 此处使用struts标签库返回RegisterAction—validation.xml中出现的错误-->
  您的输入在后台验证时出错! <br>
</body>

success.jsp 内容为 哈哈!校验通过!!

原文地址:https://www.cnblogs.com/WooZz/p/2580817.html