• 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']"/>

  • 相关阅读:
    BCrypt 加密实现
    Java AES512加密算法
    二、 Mosquitto 使用说明
    一、Mosquitto 介绍&安装
    ConcurrentHashMap源码分析(JDK8版本<转载>)
    详解设计模式六大原则(转载)
    Java 单例模式详解(转)
    一致性哈希算法(consistent hashing)(转载)
    Java并发之AQS详解(转)
    数据库(第一范式,第二范式,第三范式)(转)
  • 原文地址:https://www.cnblogs.com/sdnu/p/5357153.html
Copyright © 2020-2023  润新知