zoukankan      html  css  js  c++  java
  • OGNL

    1.什么是OGNL?
      ObjectGraphNavigationLanguage 和EL同为表达式语言,但功能更为强大

    2.OGNL在Struts2中做两件事

    • 表达式语言
      • 将表单或Struts2标签与特定的java数据绑定起来,用来将数据移入,移出框架
    • 类型转换
      • 数据进入和流出框架,在页面数据的字符串类型和java数据类型进行转换

    3.值栈(valueStack)

    • 由Struts2框架创建的存储区域,具有栈的特点 Action的实例会被存放到值栈中
    • OGNL访问值栈重上到下的顺序 ,靠近栈顶的同名属性会被读取

    4.类型转换

    • 日期转换
      • 局部:ArrayDataTransferAction-conversion.properties timeDate=cn.converter.DateConverter          
      • 全局:xwork-conversion.propertiesjava.util.Date=cn.converter.DateConverter

    5.修改所有的错误信息
      <constantname="struts.custom.i18n.resources"value="message"/>
    6.配置message.properties
      xwork.error.action.execution=ErrorduringActioninvocation
      xwork.exception.missing-action=ThereisnoActionmappedforactionname{0}.
      xwork.exception.missing-package-action=ThereisnoActionmappedfornamespace{0}andactionname{1}.
      xwork.default.invalid.fieldvalue=u5B57u6BB5"{0}"u65E0u6548.

    7.配置struts.xml

    8.OGNL表达式

    • 注意事项
      • 访问Bean的属性
      • 必须具有无参构造
      • Set/get方法符合javaBean规范

    实例
    创建集合对象:
    <s:setname="userList"value="{'Jason','Tom','Marry'}"/>
    <s:propertyvalue="#userList[1]"/>
    <s:propertyvalue="#userList.size"/>

    <hr>
    创建Map
    <s:setname="map"value="#{'cn':'China','us':'the United States'}"/>
    <s:propertyvalue="#map.cn"/>
    <s:propertyvalue="#map['cn']"/>
    <hr>访问非值栈对象加#
    <s:setname="age"value="20"scope="request"></s:set>
    <s:setname="username"value="'Jason'"scope="session"></s:set>
    <s:setname="count"value="5"scope="application"></s:set>

    #request.age:<s:propertyvalue="#request.age"/><br>
    #session.username:<s:propertyvalue="#session.username"/><br>
    #application.count:<s:propertyvalue="#application.count"/><br>
    #attr.count:<s:propertyvalue="#attr.count"/><br>
    <hr>演示字符串常量
    <s:setname="country1"value="China"></s:set>
    <s:setname="country2"value="'China'"></s:set>
    常量使用单引号
    #country1:<s:propertyvalue="#country1"/><br>
    #country2:<s:propertyvalue="#country2"/><br>
    没指定访问类型只有request可以
    #request.country2:<s:propertyvalue="#request.country2"/><br>

  • 相关阅读:
    javascript 离开网页时 触发函数
    dhl:简单的WebConfig加密 连接字符加密解密
    javascript获取网页URL地址及参数等
    dhl:img 的src 在 ie7下是将全路径。>ie8和firefox没有问题
    有趣有用网址大全
    VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
    iis6配置支持.net4.0
    闲语MVC3和Razor 转自:啊不
    dhl:4.0服务器端控件
    如何在C#中实现窗体全屏模式
  • 原文地址:https://www.cnblogs.com/QQW-HH/p/7644654.html
Copyright © 2011-2022 走看看