Ognl中ValueStack对象

 


El表达式语言,用于页面取值,jsp页面取值的标准。(默认直接可以使用,应用范围更广。)

 

Ognl表达式语言, struts标签默认支持的表达式语言。必须配置struts标签用,不能离开struts标签直接用。

 

与其相关的ValueStack对象

 

用户每次访问struts的action,都会创建一个Action对象、ValueStack对象、ActionContext对象;  然后把Action对象放入ValueStack中; 最后再把ValueStack对象放入request中,传入jsp页面。(key:struts.valueStack);开发者只需要通过ActionContext对象就可以访问struts的其他的关键对象。 

list栈中

这里我们可以把页面显示的数据保存到的root根元素中,通过Ognl表达式显示,注意:这时数据在根元素中,不需要添加‘#’号。

map栈中

context,ValueStack中非根元素数据,

 

源码:

 

public class OgnlDemo2 extends ActionSupport{
	
	// 根元素值
    private User user = new User(100,"Jacks");
    public User getUser() {
		return user;
	}
    public void setUser(User user) {
		this.user = user;
	}
	
	@Override
	public String execute() throws Exception {
		
		ActionContext ac = ActionContext.getContext();
		// 映射数据
		ac.getContextMap().put("request_data", "request_data");
		// 数据存储request
//		Map<String,Object> map = (Map<String, Object>) ac.get("request");
//		map.put("request_data", "request_data");
//		map.put("cn", "China");
		
		ac.getSession().put("Session_data", "Session_data");
		ac.getApplication().put("Application_data", "Application_data");
		
		
		// 二、值栈对象的存储数据的原理
		ValueStack valuestack = ac.getValueStack();
		/***************操作根元素的几种方法*****************/
		// 设置数据: 入栈
		valuestack.push(new User(1002,"Tom"));	// 栈顶
		valuestack.pop();						// 移除栈顶元素
		
		// 如何存储?  map结构存储  
		//vs.set("user1", new User(1,"Jacky1"));
		//vs.set("user2", new User(2,"Jacky2"));
		return super.execute();
	}
}

最后配置struts

 

感兴趣的朋友可以关注微信公众号(会定时推送新的知识):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值