您的位置:首页 > 编程语言 > Java开发

Struts2 Action详解

2017-11-30 00:00 176 查看
一、a ction类编写方式

1、action类有三种编写方式

第一种:创建普通类,不继承任何类,不是先任何接口(不常用)

public class HelloAction {

public String execute(){
return "ok";
}
}

第二种:创建类,实现接口Action(不常用)

public class UserAction implements Action{
@Override
public String execute() throws Exception {
return null;
}
}

第三种:创建类,继承ActionSupport(常用)

public class PersonAction extends ActionSupport{

}


二、访问action类中方法

1、有三种方式实现

第一种:使用action标签的method属性,在这个属性里面写执行的action的方法

第二种:使用通配符方式实现

第三种:动态访问实现(不常用)

第一种方式实现

1、创建action类创建多个方法

public class BookAction extends ActionSupport{

public String add() {
System.out.println("add......");
return NONE;
}
public String update() {
System.out.println("update......");
return NONE;
}
}

2、在struts.xml文件中进行配置

<package name="methoddemo" extends="struts-default" namespace="/">
<action name="addAction" class="action.BookAction" method="add"></action>
<action name="updateAction" class="action.BookAction" method="update"></action>
</package>

3、运行http://localhost:8080/Struts2-1/addAction.action



运行http://localhost:8080/Struts2-1/updateAction.action



方式一缺陷:action每个方法都需要配置,如果action里面有多个方法,需要配置很多的action。使用下面通配符方式则会解决这个问题。

第二种方式实现(重点)

1、在action标签里面name属性,name属性里面加*通配符。

<package name="methoddemo" extends="struts-default" namespace="/">
<!--
name属性值里面加符号*
(1)执行action里面的add方法,访问book_add
(2)执行action里面的update方法,访问book_update
上面两个路径使用下面的book_*都可以匹配到
method属性写*通配的值,通用的写法为{1}
-->
<action name="book_*" class="action.BookAction" method="{1}"></action>
</package>

2、BookAction.java

public class BookAction extends ActionSupport{

public String add() {
System.out.println("add......");
return NONE;
}
public String update() {
System.out.println("update......");
return NONE;
}
}

3、执行输入http://localhost:8080/Struts2-2/book_add.action



输入http://localhost:8080/Struts2-2/book_update.action

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: