• %-$-#-取值来源


    OGNL中$号的使用
    1..在国际化资源文件中,引用OGNL表达式
    2..在struts.xml文件中,引用OGNL表达式

    OGNL中%号的使用
    1..使用%{}可以取出保存在值堆栈中的Action对象,直接调用它的方法
    2..如果Action继承了ActionSupport,那么在页面标签中可以使用%{getText('key')}获取国际化信息

    OGNL中#号的使用
    OGNL中的#号可以取出堆栈上下文中存放的对象

    名称

    作用

    例子

    attr

    用于按request>>session>>application顺序访问其属性

    #attr.userName相当于按顺序从三个范围读取userName属性直到找到为止

    request

    包含当前HttpServletRequest的属性的Map

    #request.userName相当于request.getAttribute("userName")

    session

    包含当前HttpSession的属性的Map

    #session.userName相当于session.getAttribute("userName")

    application

    包含当前应用的ServletContext的属性的Map

    #application.userName相当于application.getAttribute("userName")

    parameters

    包含当前HTTP请求参数的Map

    #parameters.id[0]相当于request.getParameter("id")


    利用投影获取属性
    利用投影获取List中对象的username属性时,其中{}表示的是一个集合
    stus.{username}就表示将suts中所有的username属性取出组成一个新的列表

    利用选择获取属性

    OGNL表达式是很灵活的,可以同时使用选择技术与投影技术获取属性
    使用选择技术时,#this代表当前元素,问号?是把所有满足条件的元素都取出来。
    上箭头^是开始的意思,即取符合条件的数据索引中第一条数据,所以stus.{^#this.grade>=60}.{username}输出的是[张三]
    注意,此时输出文本中包含中括号,这表示它是一个列表。
    而stus.{?#this.grade>=60}.{username}[0]输出的是张三,是字符串,二者是不同的。
    美元符号$是结束的意思,即取符合条件的数据索引中最后一条数据,所以stus.{$#this.grade>=60}.{username}输出的是[王五]
    这三个符号:问号、上箭头、美元符所返回的都是List

  • 相关阅读:
    kuangbin 专题一:G题,POJ3087:Shuffle'm Up
    kuangbin专题一:F题,POJ3126:Prime Path
    /*分治典型应用 快速排序*/
    kuangbin专题一 简单搜索 E,POJ 1426 Find The Multiple
    kuangbin专题一:C题,POJ3278:Catch That Cow
    kuangbin专题一B题:POJ2251:Dungeon Master
    kuangbin专题一A题 :POJ1321 :棋盘问题
    1282: ykc想吃好吃的
    2017年ACM第八届山东省赛I题: Parity check(判断 第n项斐波那契数列奇偶性)
    2017年ACM第八届山东省赛J题:company
  • 原文地址:https://www.cnblogs.com/Struts-pring/p/5120155.html
Copyright © 2020-2023  润新知