struts2学习札记02-Action的配置及自定义action
struts2学习笔记02-Action的配置及自定义action
第二章 Action
2.0 action 的作用
将请求与界面分开具体视图的返回由Action来决定。
具体手段是根据action返回的字符串找到具体的配置项。
例如:action有如下方法
则在struts.xml中可以这样配置
如果execute返回error,则访问user_add_error.jsp.若返回success,则访问user_add_success.jsp
<result>的name属性默认是success,所以success可以不写
2.1 package
【属性作用】
name:必选属性。包名,用于定义action的访问路径,所以可以区分同名的action
extends:可选属性。指定父包。子包会继承父包的所有配置。
namespace:可选属性。定义action访问路径。若不指定,默认namespace=”” ,表示匹配所有路径。即只要指定action的名字,敲任何路径都可以访问到该包下对应的action。
2.2 action
【属性作用】
type:可选。设置页面跳转的类型。属性值可以为是chain、redirect、dispatcher、redirectAction等。
class:可选。指定action类的完整名。若不指定,则默认为com.opensymphony.xwork2.ActionSupport类
因为struts-default.xml中有如下配置:
name:必选。指定action的访问名。访问形式为actionName.extension。
extension为后缀名,由于default.properties中有如下配置:
struts.action.extension=action,,
这句话指定了在默认情况下action的后缀名为action或者为空。
当然,如果不想使用默认配置,我们可以修改action的后缀名,只需在struts.xml中配置一个常量,如:设置后缀名为do或空
2.3 定义自己的action
可以有三种方法,其中第三种方法最常用,前两种只做了解。
(1).自定义Action类
①自义类,该类只要拥有如下方法即可
public String execute(){
return “success”;
}
缺点:难于控制,容易写错,并且没有继承来的方法可用
②因为所有Action均继承自Action接口
所以只需实现Action接口,并实现execute()方法
缺点:其中的方法都是空的,没有实际作用
③继承com.opensymphony.xwork2.ActionSupport类(最常用)
优点:已经封装各种有用的方法
(2).struts.xml配置
最后不要忘了在struts.xml中注册我们自己的action
第二章 Action
2.0 action 的作用
将请求与界面分开具体视图的返回由Action来决定。
具体手段是根据action返回的字符串找到具体的配置项。
例如:action有如下方法
public String execute(){ if(name== null || !name.equals(“admin”)){ return “error”; } return “success”; }
则在struts.xml中可以这样配置
<action name="user" class="com.jnmc.unique.ModelDriven.Action"> <result>/user_add_success.jsp</result> <result name="error">/user_add_error.jsp</result> </action>
如果execute返回error,则访问user_add_error.jsp.若返回success,则访问user_add_success.jsp
<result>的name属性默认是success,所以success可以不写
2.1 package
【属性作用】
name:必选属性。包名,用于定义action的访问路径,所以可以区分同名的action
extends:可选属性。指定父包。子包会继承父包的所有配置。
namespace:可选属性。定义action访问路径。若不指定,默认namespace=”” ,表示匹配所有路径。即只要指定action的名字,敲任何路径都可以访问到该包下对应的action。
2.2 action
【属性作用】
type:可选。设置页面跳转的类型。属性值可以为是chain、redirect、dispatcher、redirectAction等。
class:可选。指定action类的完整名。若不指定,则默认为com.opensymphony.xwork2.ActionSupport类
因为struts-default.xml中有如下配置:
<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
name:必选。指定action的访问名。访问形式为actionName.extension。
extension为后缀名,由于default.properties中有如下配置:
struts.action.extension=action,,
这句话指定了在默认情况下action的后缀名为action或者为空。
当然,如果不想使用默认配置,我们可以修改action的后缀名,只需在struts.xml中配置一个常量,如:设置后缀名为do或空
<constant name="struts.action.extension" value="do,," />
2.3 定义自己的action
可以有三种方法,其中第三种方法最常用,前两种只做了解。
(1).自定义Action类
①自义类,该类只要拥有如下方法即可
public String execute(){
return “success”;
}
缺点:难于控制,容易写错,并且没有继承来的方法可用
②因为所有Action均继承自Action接口
所以只需实现Action接口,并实现execute()方法
缺点:其中的方法都是空的,没有实际作用
③继承com.opensymphony.xwork2.ActionSupport类(最常用)
优点:已经封装各种有用的方法
(2).struts.xml配置
最后不要忘了在struts.xml中注册我们自己的action
<action name="index" class=”packagename.classname”> <result>/index.jsp</result> </action>