struts_20_Action内のすべてのメソッド、あるメソッドに対して入力チェックを行う(XML構成方式に基づいて入力チェックを実現する)

12690 ワード

ステップ01:ガイド
struts_20_对Action中所有方法、某一个方法进行输入校验(基于XML配置方式实现输入校验)
ステップ02:webを構成する.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" 

    xmlns="http://java.sun.com/xml/ns/j2ee" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 

     <!--  00 :  Struts   -->

    <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>



    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

ステップ03:beanの作成
package cn.itcast.bean;



/**

 *  01 :

 * ******  bean

 *    :package cn.itcast.action.PersonAction;

 */

public class Person {

    private String name;

    private String mobile;

    

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public String getMobile() {

        return mobile;

    }

    public void setMobile(String mobile) {

        this.mobile = mobile;

    }

}

ステップ04:actionの作成
package cn.itcast.action;



import cn.itcast.bean.Person;



import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

/**

 *  02 :

 *   action

 */

public class PersonAction extends ActionSupport{

    private Person person;

    

    /** 03 :  action  update()、save(),   :struts.xml**/

    /**3.1**/

    public String update(){

        System.out.println("  update!");

        ActionContext.getContext().put("message", "    ");

        return "message";

    }

    /**3.2**/

    public String save(){

        System.out.println("  save!");

        ActionContext.getContext().put("message", "    ");

        return "message";

    }

    /**3.3**/

    public String other(){

        System.out.println("  other!");

        ActionContext.getContext().put("message", "other");

        return "message";

    }

    

    /**set()、get()  */

    public Person getPerson() {

        return person;

    }



    public void setPerson(Person person) {

        this.person = person;

    }

    

}

ステップ05:検証xmlプロファイルの作成:
名前は:PersonAction-validation.xml:すべてのメソッドを検証します(クラス名+"-validation.xml")
名前:PersonAction-manage_*-validation.xml:manage_*指定したメソッドを検証します.manage_*struts構成です
名前:PersonAction-manage_save-validation.xml:saveメソッドの検証
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">

<validators>

    <!-- field  action         -->

    <field name="person.name">

        <!-- 

            field-validator     ,requiredstring         (      ),

               com.opensymphony.xwork2.validator.validations  default.xml        ,             

         -->

        <field-validator type="requiredstring">

            <!--       :             -->

            <param name="trim">true</param>

            <!--         -->

            <message>       !</message>

        </field-validator>

    </field>

    <field name="person.mobile">

        <field-validator type="requiredstring">

            <param name="trim">true</param>

            <message>       !</message>

        </field-validator>

        <!-- regex:        ,CDATA:xml    ,          ,  xml   -->

        <field-validator type="regex">

            <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>

            <message>        !</message>

        </field-validator>

    </field>

</validators>

ステップ06:strutを構成する.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="person" namespace="/person" extends="struts-default">

            <action name="manage_*" class="cn.itcast.action.PersonAction" method="{1}">
          <!-- input --> <result name="input">/index.jsp</result> <result name="message">/WEB-INF/page/message.jsp</result> </action> </package> </struts>

ステップ07:インタフェースの作成
index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="/struts-tags" prefix="s"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>    </title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0"> 

  </head>

  

  <body>

  save    

      <!-- s:fielderror       -->

   <s:fielderror/>

   <form action="person/manage_save.action" method="post">

              :<input type="text" name="person.name"/>    <br/>

              :<input type="text" name="person.mobile"/>    ,           1,3/5/8,   9   <br/>

           <input type="submit" value="   "/></form>



  update    

   <s:fielderror/>

   <form action="person/manage_update.action" method="post">

              :<input type="text" name="person.name"/>    <br/>

              :<input type="text" name="person.mobile"/>    ,           1,3/5/8,   9   <br/>

           <input type="submit" value="   "/></form>



         

   <s:fielderror/>

   <form action="person/manage_other.action" method="post">

              :<input type="text" name="person.name"/>    <br/>

              :<input type="text" name="person.mobile"/>    ,           1,3/5/8,   9   <br/>

           <input type="submit" value="   "/></form>

  </body>

</html>

message.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>  </title>

  </head>

  

  <body>

    ${message }

  </body>

</html>

注意、要件:
         

1、  XML      action     



  :

   :    

   :    ,           1,3/5/8,   9   



  :

   ActionSupport ,
struts.xml input , action , ActionClassName
-validation.xml( +"-validation.xml")

名前は:PersonAction-validation.xml:すべてのメソッドを検証する
名前:PersonAction-manage_*-validation.xml:manage_*指定したメソッドを検証します.manage_*struts構成です
名前:PersonAction-manage_save-validation.xml:saveメソッドの検証