struts 并不要求action类一定要继承Action接口,也可以编写普通的类作为action,只要返回一个String的无参public
方法即可
public String xxx()
在实际开发中通常继承com.opensymphony.xwork2.ActionSupport 类,ActionSupport 实现了Action接口及其可选接口 提供了输入验证,错误信息存取,及其国际化的支持,选择ActionSupport继承,可以简化action的开发。
action 元素的属性
属性 是否必须 说明
name 是 action的名字,用来匹配url
class 是 Action实现类的完整类名
method 否 执行Action时调用的方法
converter 否 应用于Action类型转化器的完整类名
(1)使用method 属性
在实际开发中经常会用到CRUD操作
在NewsAction实现CRUD操作
package com.coolove.action;
import com.opensymphony.xwork2.ActionSupport;
//继承ActionSupport类
public class NewsAction extends ActionSupport
{
// 添加新闻
public String create() throws Exception
{
return SUCCESS;
}
//编辑新闻
public String edit() throws Exception
{
return SUCCESS;
}
//跟新新闻
public String update() throws Exception
{
return SUCCESS;
}
//删除新闻
public String delete() throws Exception
{
return SUCCESS;
}
}
<!-- 执行execute方法 --> <action name="list" class="com.coolove.NewsAction" > <result name="success">listNews.jsp</result> </action> <!-- 请求/create 调用NewsAction中的create方法 --> <action name="create" class="com.coolove.NewsAction" method="create"> <result name="success">createNews.jsp</result> </action> <!-- 请求/edit时调用edit方法 --> <action name="edit" class="com.coolove.NewsAction" method="edit"> <result name="success">editNews.jsp</result> </action>
Struts2在action 的method方法由两种途径:
(1)查找于method 的属性值完全一样的方法
(2)查找doMethod的方法