Struts2框架学习<二>Action命名空间&&创建方式

     Struts2框架中Action类时一个单独的javabean对象,相比struts1来说,不需要去继承任何类型或实现任何借口,表单数据包含在Action中,而Struts1则必须继承org.apache.struts.action.Action或者其子类才行,相比之下,耦合度减小了许多。

对于struts2来说,在struts.xml配置是其核心内容,今天主要介绍其命名空间和其三种创建方式。

命名空间namespace

<package name="default" namespace="/" extends="struts-default">

     namespace在缺省的情况下相当于"";

三种创建方式:

方式一:创建一个POJO类

POJO(PlainOrdinary Java Object)简单的Java对象

struts.xml配置

		<!-- 使用pojo创建action -->
		<action name="demo1" class="cn.itcast.action.Demo1Action">
			<result>/success.jsp</result>
		</action>
//创建一个Action,使用pojo类
public class Demo1Action {

	public String execute() {

		return "success";
	}
}
  • 优点:无耦合

  • 缺点:所有功能都需要自己实现

方式二:创建一个类,实现Action接口

Action接口  com.opensymphony.xwork2.Action

struts.xml

<!-- 使用Action接口来实现action创建 -->
		<action name="demo2" class="cn.itcast.action.Demo2Action">
			<result>/success.jsp</result>
		</action>
Action:

//继承Action
public class Demo2Action implements Action {

	public String execute() throws Exception {
//		SUCCESS代表数据处理成功
		return SUCCESS;
	}

}

优点:Action接口中定义了请求处理方法execute,还定义了五个结果视图

  •      public static final String SUCCESS ="success";  //数据处理成功(成功页面)
  •      public static final String NONE ="none";  //页面不跳转  return null;效果一样
  •      public static final String ERROR ="error";  //数据处理发送错误 (错误页面)
  •      public static final String INPUT ="input"; //用户输入数据有误,通常用于表单数据校验(输入页面)
  •      public static final String LOGIN ="login"; //主要权限认证 (登陆页面)

缺点:具体的功能还需要自己手动实现.

方式三:创建一个类,继承ActionSupport

ActionSupport    com.opensymphony.xwork2.ActionSupport

struts.xml

<!-- 使用继承Actionsupport来实现action创建 -->
		<action name="demo3" class="cn.itcast.action.Demo3Action"
			method="add">
			<result>/success.jsp</result>
		</action>
Action

//继承于ActionSupport
public class Demo3Action extends ActionSupport {

	public String add() throws Exception {

		System.out.println("add method");
		return SUCCESS;
	}

}
  • 优点:不仅具有了Action接口中提供的功能(ActionSupport类实现了Action接口),还具有国际化参数校验错误信息设置功能
  • 缺点:耦合度高

     介于优缺点的比较,在开发的过程中我们还是使用第三种比较多,纵然耦合度高,但是由于不用着急动手去实现,我们完全可以通过其他的方法去将耦合度降低。

     三种方式都可以达到相同的目的,如果成功跳转则可将其设置的jsp页面显示出来。再此省略不计

你可能感兴趣的:(Action三种创建方式,Action使用)