加入收藏设为首页

新闻详情

获取非根元素动态创建map集合

作者:星际平台-星际官方娱乐网址-星际平台网址    发布时间:2020-04-19 20:03:07    来源:星际平台-星际官方娱乐网址-星际平台网址    浏览:141
  

  EL表达式语言,也用于页面取值,是jsp页面取值的标准(默认就可以使用)

  Ognl表达式语言,Struts标签默认支持的表达式语言,必须配置Struts标签用,不能离开Struts标签直接使用,就是说Ognl必须在Struts中使用

  对比来看,EL使用范围更广,项目中不限制使用哪一种,哪一种熟悉就使用哪一种

  但是项目中不会要求写OgnlContext的代码,Ognl标签其实是调用了OgnlContext对象。所以只做了解即可。

  Ognl表达式语言取值,也是用java代码取值的,原理就是使用OgnlContext和Ognl这两个类,只需要记住,Ognl取根元素不用#号,取非根元素要使用#号

  ValueStack贯穿整个Action的生命周期(每个Action类的对象实例都拥有一个ValueStack对象),即用户每次访问struts的action,都会创建一个Action对象、值栈对象、ActionContext对象,然后把Action对象放入值栈中;最后再把值栈对象放入request中,传入jsp页面。相当于一个数据的中转站,在其中保存当前Action对象和其他相关对象。

  代码调试的时候,发现有一个root是compundRoot类,继承ArrayList,保存的是action对象;还有一个OgnlContext是继承Map,保存数据。所以ValueStack存储对象时是分两个地方来存的,也即ValueStack对象的组成是由List栈和Map栈构成的:

  list栈主要存储:action对象,Map对象(通过vs.set()设置),通过push方法设置的对象,以及其他代理对象

  value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。

  给form指定主题,form下所有的表单元素都应用此主题对Struts标签默认的主题样式:

  荐:发原创得奖金,“原创奖励计划”来了!负梦前行 不负韶华,有奖征文邀你分享!