美文网首页程序员
Action编写方式

Action编写方式

作者: 常威爆打来福 | 来源:发表于2017-09-21 22:23 被阅读0次

    1 action编写的三种方式
    (1) 创建普通类,这个不继承任何类,不实现任何接口

    public class HelloAction {
       
    }
    

    (2) 创建类,实现接口Action

    import com.opensymphony.xwork2.Action;
    
    public class UserAction implements Action {
        public String execute() throws Exception {
            return null;
        }
    }
    
    

    (3) 创建类,继承类ActionSupport(最常用)

    public class PersonAction extends ActionSupport {
        
    }
    

    二 访问action的方法(重点)
    1 有三种方式实现
    *(1)使用action标签的method属性,在这个属性里面写执行的action的方法

    • 创建action,创建多个方法
    package Method;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
     * Created by pc on 2017/9/21.
     */
    public class BookAction extends ActionSupport {
        //添加
        public String add(){
            System.out.println("add........");
            return NONE;
        }
        //修改
        public String update(){
            System.out.println("update.......");
            return  NONE;
        }
    
    }
    
    • 配置
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <constant name="struts.i18n.encoding" value="utf-8"></constant>
       <package name="method" extends="struts-default" namespace="/">
            <action name="addAction" class="Method.BookAction" method="add"></action>
            <action name="updateAction" class="Method.BookAction" method="update"></action>
        </package>
    </struts>
    
    执行成功

    缺陷:action每个方法都需要配置,如果action里面有多个方法,配置很多的action

    *(2)使用通配符方式实现(重点)

    在action标签里面name属性,name属性值里面写符号 * 表示匹配任意内容

    • 配置struts.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <constant name="struts.i18n.encoding" value="utf-8"></constant>
        <!--通配符方式实现-->
        <package name="method1" extends="struts-default" namespace="/">
            <!--
            name属性值里面写符号
            (1)执行action里面add方法,访问book_add,使用book_* 可以匹配到,*相当于add
            (2)执行action里面的update方法,访问book_update,使用book_* 可以匹配到,*相当于update
            上面两个路径使用book_* 可以匹配到
            -->
            <action name="book_*" class="Method.BookAction" method="{1}">
    
            </action>
    
        </package>
    </struts>
    

    (3)动态访问实现(不用)
    2 演示错误
    (1)如果action方法有返回值,在配置文件中没有配置,出现错误

    错误

    (2)在action里面的方法有返回值,如果有返回值的时候类型必须是String
    (3)action里面的方法可以没有返回值,没有返回值的时候,在result标签不需要配置

    • 把方法写成void
    • 让返回值,返回“none”

    相关文章

      网友评论

        本文标题:Action编写方式

        本文链接:https://www.haomeiwen.com/subject/uvwgsxtx.html