Struts2:向值栈存放数据

本文详细介绍了在Struts2框架中如何通过三种方式向值栈存放数据:使用set方法、push方法以及直接在Action中定义变量。同时,文章还探讨了如何在值栈中存放对象、List集合等复杂数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方式:使用值栈对象里面的set方法
HashMap类型存储

public String execute() throws Exception {
	// 1 获取值栈对象
	ActionContext context = ActionContext.getContext();
	ValueStack stack = context.getValueStack();
	// 2 调用set方法
	stack.set("itcast", "itcastitheima");
	return SUCCESS;
}

第二种方式:使用值栈对象里面的push方法
String类型存储

public String execute() throws Exception {
	// 1 获取值栈对象
	ActionContext context = ActionContext.getContext();
	ValueStack stack = context.getValueStack();
	// 2 调用push方法
	stack.push("abcd");
	return SUCCESS;
}

第三种方式:在action定义变量

public class ValueStackAction extends ActionSupport {

	// 1 定义变量
	private String name;

	// 2 生成变量的get方法
	public String getName() {
		return name;
	}

	@Override
	public String execute() throws Exception {
		// 3 在执行的方法里面向变量设置值
		name = "abcd";
		return SUCCESS;
	}
}

注意
调用set方法和调用push方法,都会在值栈中开辟一个新空间,如HashMap集合、String,但是,直接在action中定义变量,不会再在值栈中开辟空间而是直接存储在值栈中,避免了空间浪费。

向值栈存放对象

  1. 定义对象变量
  2. 生成变量的get方法
  3. 在执行的方法里面向对象中设置值
public class ValueStackAction extends ActionSupport {

	// 1 定义对象变量
	private User user = new User();

	// 2 生成get方法
	public User getUser() {
		return user;
	}

	@Override
	public String execute() throws Exception {
		// 3 向值栈的user里面放数据
		user.setUsername("lucy");
		user.setPassword("123");
		user.setAddress("美国");
		return SUCCESS;
	}
}

向值栈存放list集合

  1. 定义list集合变量
  2. 生成变量的get方法
  3. 在执行的方法里面向list集合设置值
public class ValueStackAction extends ActionSupport {

	// 1 定义list变量
	private List<User> list = new ArrayList<User>();

	// 2 生成get方法
	public List<User> getList() {
		return list;
	}

	@Override
	public String execute() throws Exception {
		// 3 向list中设置值
		User user1 = new User();
		user1.setUsername("小奥");
		user1.setPassword("123");
		user1.setAddress("美国");

		User user2 = new User();
		user2.setUsername("小王");
		user2.setPassword("250");
		user2.setAddress("越南");

		list.add(user1);
		list.add(user2);

		return SUCCESS;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值