Struts2的ognl与JSP的el表达式取值问题

来源:互联网 发布:网络大电影收片 编辑:程序博客网 时间:2024/06/05 22:47

el表达式

依次从page、request、session、application中查找数据

从List中取值

List<String> list1 = new ArrayList();list1.add("aaa1");list1.add("aaa2");list1.add("aaa3");ServletActionContext.getRequest().setAttribute("list1",list1);List<String> list2 = new ArrayList();list2.add("bbb1");list2.add("bbb2");list2.add("bbb3");ServletActionContext.getRequest().getSession().setAttribute("list2",list2);List<String> list3 = new ArrayList();list3.add("ccc1");list3.add("ccc2");list3.add("ccc3");ServletActionContext.getServletContext().setAttribute("list3",list3);//从request范围中取值:${list1[0] }//从session范围中取值:${list2 }//从application范围中取值:${list3 }
从Map中取值

Map map = new HashMap();map.put("k1", "v1");map.put("k2", "v2");map.put("k3", "v3");ServletActionContext.getRequest().setAttribute("map",map);//${map }//取出整个集合//${map['k1'] }//取出key=”k1”的值//<c:forEach var=”entry” items=”${map}”>//    ${entry.key}:${entry.value}//</c:forEach>


取出域中对象的值

User user = new User();user.setUsername("liuli");user.setPassword("liuli123456");ServletActionContext.getRequest().setAttribute("user",user);//${user.username }//${user.password }



ognl

结论:ognl访问Action中的属性时,可以直接访问,访问ActionContext中的数据时,需要加"#"

从request中取值

List<String> list1 = new ArrayList();list1.add("aaa1");list1.add("aaa2");list1.add("aaa3");ServletActionContext.getRequest().setAttribute("list1",list1);//放入request域中
对应的ognl

<s:property value="#request.list[0]"/><s:iterator value="#request.list1" id="name">   <s:property value="name"/></s:iterator>

从session中取值

List<String> list2 = new ArrayList();list2.add("bbb1");list2.add("bbb2");list2.add("bbb3");ServletActionContext.getRequest().getSession().setAttribute("list2",list2);
对应的ognl

<s:property value="#session.list2[0]"/><s:iterator value="#session.list2" id="name">   <s:property value="name"/></s:iterator>

从application中取值

List<String> list3 = new ArrayList();list3.add("ccc1");list3.add("ccc2");list3.add("ccc3");ServletActionContext.getServletContext().setAttribute("list3",list3);
对应的ognl

<s:property value="#application.list3[0]"/><s:iterator value="#application.list3" id="name">   <s:property value="name"/></s:iterator>

取中域中的Map

Map map = new HashMap();map.put("k1", "v1");map.put("k2", "v2");map.put("k3", "v3");ServletActionContext.getRequest().setAttribute("map",map);
对应的ognl

<s:property value="#request.map['k1']"/><s:iterator value="#request.map">   <s:property value="key"/>   <s:property value="value"/></s:iterator>

取出域中对象的值

User user = new User();user.setUsername("liuli");user.setPassword("liuli123456");ServletActionContext.getRequest().setAttribute("user",user);
对应的ognl

<s:property value="#request.user.username"/><s:property value="#request.user.password"/>








0 0
原创粉丝点击