zoukankan      html  css  js  c++  java
  • struts2中的OGNL

    OGNL中重要的3个符号:#、%、$:

    #、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分,需要时间的积累才渐渐弄清楚……
    1.#符号

    #符号的用途一般有三种。

    —    访问非根对象属性,例如#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute("msg") 。

    —    用于过滤和投影(projecting)集合,如persons.{?#this.age>25},persons.{?#this.name=='pla1'}.{age}[0]。

    —    用来构造Map,例如示例中的#{'foo1':'bar1', 'foo2':'bar2'}。

    2.%符号

    %符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值,这个类似js中的eval,很暴力。

    3.$符号

    $符号主要有两个方面的用途。

    —    在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。

    —    在Struts 2框架的配置文件中引用OGNL表达式,例如:

      1. <validators>    
      2.     <field name="intb">    
      3.             <field-validator type="int">    
      4.             <param name="min">10</param>    
      5.             <param name="max">100</param>    
      6.             <message>BAction-test校验:数字必须为${min}为${max}之间!</message>    
      7.         </field-validator>    
      8.     </field>    
      9. </validators>  
  • 相关阅读:
    HTML元素解释
    Java命名规范
    HDU 1058 Humble Numbers(DP,数)
    HDU 2845 Beans(DP,最大不连续和)
    HDU 2830 Matrix Swapping II (DP,最大全1矩阵)
    HDU 2870 Largest Submatrix(DP)
    HDU 1421 搬寝室(DP)
    HDU 2844 Coins (组合背包)
    HDU 2577 How to Type(模拟)
    HDU 2159 FATE(二维完全背包)
  • 原文地址:https://www.cnblogs.com/fthjane/p/4738704.html
Copyright © 2011-2022 走看看