美文网首页程序员
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