zoukankan      html  css  js  c++  java
  • struts2笔记11-OGNL

    1、OGNL

         Object-Graph Navigation Language,对象-图 导航语言,可以方便的操作struts2值栈对象

    2、对象栈操作方法

    (1)action普通属性的访问方法

        <s:property value="[n].pName"/>

        从对象栈第n个对象开始查找pName属性的值;

        <s:property value="[0].pName"/>,表示从栈顶对象开始查找,而从栈顶对象开始查找又可以省略索引;

        <s:property value="pName"/>,通常这么写,表示从栈顶对象开始查找pName,直到找到为止,若找不到则为"";

    (2)action中的对象属性的访问方法

      假设action实例中有给person对象,则

        <s:property value="[n].person.personName"/>,表示从第n个栈中对象查找person.personName;

        同样,<s:property value="[0].person.personName"/>,表示从栈顶对象开始查找;

        省略掉[0],即为<s:property value="person.personName"/>

        也可以写成<s:property value="person['personName']"/>

        可以通过,<s:debug />标签进行查看

    3、map栈访问方法

    (1)session中属性的访问

         <s:property value="#session.product.pName"/>,其中product是一个实体对象;

    (2)request中属性的访问

        <s:property value="#request.test.person.personName"/>,其中test对象中有一个person对象;

    4、访问静态属性和静态方法

    (1)静态属性访问

        <s:property value="@java.lang.Math@PI" />

    (2)静态方法访问

        默认情况下静态方法不允许访问,需要设置一个常量值:

      <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

        <s:property value="@java.lang.Math@cos(0)"/>

    5、访问实例方法

        <s:property value="[n].setpName('jerry')"/>,n表示从栈对象中第n个对象开始搜索setpName方法

        比如<s:property value="[0].setpName('jerry')"/>表示从栈顶对象开始搜索,省略掉[0],即

        <s:property value="setpName('jerry')"/>

    6、数组的访问

     <%
     	String[] names=new String[]{"aa","bb","cc"};
     	request.setAttribute("names", names);
     %>
    

    <s:property value="#attr.names.length"/>

    <s:property value="#request.names[2]"/>

    7、Map的访问

    <%
     	Map<String,String> map1=new HashMap<String,String>();
     	
     	map1.put("AA", "a");
     	map1.put("BB", "b");
     	map1.put("CC", "c");
     	request.setAttribute("map1",map1);
     %>
    

    <s:property value="#request.map1.size"/>

    <s:property value="#attr.map1['AA']"/>

  • 相关阅读:
    Expression基础体验
    浅谈Pool对象
    TreeBuilder科学的树创建器
    2种负载均衡算法
    亲自打造Deferred对象
    Animation
    micro-template改造
    Node.js的缺陷
    让JSON.js完全适应.NET
    关系型数据库操作一些不好用的地方
  • 原文地址:https://www.cnblogs.com/sdnu/p/5357153.html
Copyright © 2011-2022 走看看