Struts2封装数据的操作

*在Action类中的传统封装方式:

//获取表单中的数据
HttpServletRequest request = ServletActionContext.getRequest();
		String username = request.getParameter("username");
		String password = request.getParameter("password")
//封装到实体类user对象中
User user = new User();
user.setUsername(username);
user.setPassword(password);

传统方式的缺点:当表单中的数据太多时,传统封装方式的效率是比较低的,代码量也会变得非常大。所以一般不采用这种方式封装方式。

下面我们来看一些比较常用的封装方式:

*属性封装:

1、把表单提交的数据封装到Action类的属性里。

//Action类的代码
public class DataResultAction extends ActionSupport{
	//成员属性
	private String username;
	private String password;
        //set和get方法
       public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public String execute(){
		System.out.println(username+":::"+password);
		return NONE;
	}
}
注意:成员变量名称必须和表单输入项的name属性值相同,否则底层就会匹配不到。

2、form表单的具体实现:

<!-- data4Result.action为struts.xml文件中action标签上的name值 -->
	<form action="${pageContext.request.contextPath }/data4Result.action" method="post">
		username:<input type="text" name="username"/>
		password:<input type="password" name="password"/>
		<br/>
		<input type="submit" value="提交"/>
	</form>

属性封装是将表单中的数据封装到了Action类的属性中,并没有将数据封装到对象中,所以需要在特定的场合下使用。(当然属性封装也是可以实现对对象的封装的,但是运用的不多,有兴趣的朋友可以了解一下)。

*模型驱动封装(这种封装方法是最常用的)

理解:模型驱动封装是直接将表单中的提交的数据封装到实体类对象中。

具体实现:

1、让Action类实现接口ModelDriven

2、实现接口里面的getModel方法

3、在Action类中成员位置建立实体类对象

Action类代码如下:

public class Data3ResultAction extends ActionSupport implements ModelDriven<User>{
	//创建实体类
	//确保表单属性name值要和实体类属性一样,因为底层是通过这个匹配的
	private User user = new User();
        //将user对象放入到request中,从而跳转到“user”对应的页面上。
       public String execute(){
		HttpServletRequest request = ServletActionContext.getRequest();
		request.setAttribute("user", user);
		return "user";
	}
	//封装实体类的方法。
	@Override
	public User getModel() {
		// TODO Auto-generated method stub
		return user;
	}
	
}
而至于form表单中的代码跟属性封装中的form表单中代码一样,就不再赘述了。

模型驱动封装是在struts表单封装中应用的最为广泛的一种封装方式,所以我们一定要掌握这种方式。

(这篇博客与上一篇的structs2的核心配置文件的执行流程分析有一定关联,有不清楚的地方可以浏览此地址:点击打开链接






评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值