structs2-运用Action

要使用Action,是使用配置+实现类的模式。
第一步:建立一个类名字尾部为Action,例如LoginAction。可选择让其实现Action接口或继承ActionSupport。
第二步:在这个类中实现控制方法,该方法约定返回一个字符串结果。
第三步:配置struct.xml文件

public interface Action
{
	public static final String ERROR = "error";
	public static final String INPUT = "input";
	public static final String LOGIN = "login";
	public static final String NONE= "none";
	public static final String SUCCESS = "success";
	public String execute() throws Exception;
}

尽管实际使用中Action类只需要将名字定义为*Action的样子,但是Structs2定义了Action接口为了使用户使用更规范。


public class ActionSupport
extends Object
implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable


ActionSupport类实现了包括Action的众多接口的默认方法,默认方法例如获取国际化信息的方法,数据校验的方法,默认的处理用户请求的方法,如果让开发者继承ActionSupport类,能大大简化Action开发。

如:

package com.action;
public class UserAction extends ActionSupport
{
    private int userId;
	private String userName;
	private String userPw;
	private String userRealname;
	private String userAddress;
	private String userSex;
	private String userTel;
	private String userEmail;
	private String userQq;
	private String userType;

	private String message;
	private String path;
	
	private TUserDAO userDAO;
	private TStuDAO stuDAO;
	
	
	public String userAdd()
	{
		return "succeed";
	}
	public String userEdit()
	{
		return "successAdd";
	}
	
	public String userLogin()
	{
		
		return "succeed";
	}
	
	
	
/*省略ser() get()方法

	
}
然后就是配置相应的Action信息:


Structs2 使用包来组织Action,因此,将Action定义在包定义下完成定义Action通过<package../>下的<Action../>子元素来完成。


<package../>有如下几个属性:
name:这是一个必需属性,该属性指定该包的名字,该名字是其被其它包引用的key
extends:该属性是一个可选属性,该属性指定该包继承其它包。继承其他包意味着可以继承其他包中的Action定义,拦截器定义。
namespace:可选属性,定义该包的命名空间
abstract:可选属性,指定该包是否是个抽象包。抽象包中不能包含Action定义


struts-default包是struts内置的,它定义了很多拦截器,而Struts2很多核心的功能都是通过这些内置的拦截器实现,如:从文件上传、数据验证、自动封装前台传过来的参数等等。我们写的包继承了struts-default包才能使用struts2为我们提供的这些功能,所以通常我们写的每个包都应该继承它。
<action../>的常用属性:
name:必需属性,该属性指定此Action的名字,习惯上此名字为Action的方法名。调用时此名字为被引用的key.
class:必需属性,指定这个Action类的URL。
method:可选属性,执行Action类中指定的方法调用,假如不指定则默认使用Action的execute()方法。

<struts>
    <package name="lunwen186" extends="struts-default">
        <action name="userAdd" class="com.action.UserAction" method="userAdd">
        </action>
        <action name="userEdit" class="com.action.UserAction" method="userEdit">
        </action>
        <action name="userLogin" class="com.action.UserAction" method="userLogin">
        </action>
    </package>
</struts>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值