ongl在struts2中的应用,首重介绍根目录

ongl获得根目录对象时,只需要写其属性值即可,如下:


public class MyOgnl {
	public static void main(String args[]) throws Exception{
		Teacher t = new Teacher("ZhangLi", "YuWen");
		System.out.println(Ognl.getValue(("name", t));
		System.out.println(Ognl.getValue("course", t));
	}
}

但struts2中存在的是一个hashmap,是类似这种:



private Object getOngl(Privilege item) throws OgnlException {
		Map m = new HashMap();
		m.put("item", item);
		String view = "item.name";
		return Ognl.getValue(view, m);
	}

所在在取的时候还是要加上"item.name"。


在action中的所写变量都是根目录里,结构如下:

  •                      |--request   
  •                      |   
  •                      |--application   
  •                      |   
  •        context map---|--OgnlValueStack(root) [ user, action, OgnlUtil, ... ]   
  •                      |   
  •                      |--session   
  •                      |   
  •                      |--attr   
  •                      |   
  •                      |--parameters  
  • <s:property value="info.name"/> 这样的方式直接读取。<s:property value="%{#info.name}"/>这种是取不到的。但<s:property value="%{info.name}"/>是可以的。

    但对非ognlValueStack只能通过:<s:property value="%{#request.myname}"/>或者直接el表达式:${myname}


    草木全
    分享到:
    共 0 条  此列表为空  当前1/1页

    © 2014 究问社区 copyRight 豫ICP备13003319号-1