当前位置: 首页 > news >正文

网站开发任务分解排名优化课程

网站开发任务分解,排名优化课程,开发应用,产品网站建站目录 概念 基本原理 基本语法 1、访问Root区域对象基本语法 2、访问Context区域对象基本语法 符号含义 概念 Object-Graph Navigation Language 对象-图形导航语言, 主要用于访问对象的数据和方法。 基本原理 主要由3部分构成:1.OGNL引擎 …

 目录

概念

基本原理

基本语法

1、访问Root区域对象基本语法

 2、访问Context区域对象基本语法

符号含义


概念

Object-Graph Navigation Language 对象-图形导航语言, 主要用于访问对象的数据和方法。

基本原理

主要由3部分构成:
1.OGNL引擎
         负责解析ONGL表达式,定位数据。解析表达式的过程包括词法分析、语法分析和执行。词法分析将表达式分解为标记,语法分析将标记转换为语法树,执行遍历语法树,执行表达式。

2.Root根存储区(Object类型)
         Root根存储区是一个特殊的对象,它是OGNL表达式的起点。OGNL表达式可以从Root根存储区开始,然后沿着对象图向下导航,访问对象的属性、方法和数组元素。在Java Web应用程序中,Root根存储区通常是一个JavaBean对象。在Spring框架中,ModelAndView对象通常作为Root根存储区,它包含了需要在JSP页面中显示的数据。

3.Context变量存储区(Map类型)
        是 一个Map对象,用于存储OGNL表达式中使用的变量。可以使用#符号引用Context变量存储区中的变量。

基本语法

1、访问Root区域对象基本语法

    --访问简单数据:"属性"
     例如"name"
     
    --访问数组或List集合:"属性[0]"
     例如"arr[1]"
    
    --访问Map集合:"属性['key']"或"属性.key"
     例如"map.two"或"map['two']"
    
    --访问方法:"属性值.方法()",
     例如"list.size()"
    
    --访问构造方法:"new 包名.构造方法"
     例如"new java.util.Date()"
    
    --访问静态成员:"@包名.类名@成员"
     例如"@java.lang.Math@PI"
    
    --创建List对象:"{元素1,元素2}"
    
    --创建Map对象:
    "#{key1:value1,key2:value2}"

 2、访问Context区域对象基本语法

使用Context变量存储区中的变量   
#context.user.name = "John"
#context.user.age = 30
例如:
Welcome, ${#context.user.name}! You are ${#context.user.age} years old.

符号含义

`#`:引用上下文对象,通常是Action或ValueStack对象。
`%`:引用ActionContext对象,它包含Action执行的上下文信息。
`$`:引用请求参数,例如 `$paramName` 引用名为 `paramName` 的请求参数。  
`@`:引用类静态方法或属性,例如 `@java.lang.Math@PI` 引用Math类的PI属性。

除了这些符号外,OGNL还支持许多其他运算符和表达式,例如算术运算符、逻辑运算符、比较运算符、正则表达式等。

例如:
#符号
引用上下文变量,关于OGNL 的上下文对象类型【获取属性值】:
(1)javaBean对象,例如上面的User,则 OGNL 表达式格式必须为 #{属性名}

(2)map 对象,OGNL 表达式格式为 #{key}

(3)简单类型对象(基本类型、String类型),OGNL 表达式格式为 #{随便造}

(4)操作集合对象

构造map对象,例如:

#{'foo1':'bar1', 'foo2':'bar2'}

构造list对象,例如:

{'男','女'}

%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。例如:

<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />
<p>不使用%:<s:url value="#foobar['foo1']" /></p>
<p>使用%:<s:url value="%{#foobar['foo1']}" /></p>

结果:
不使用%:#foobar['foo1']
使用%:bar1

@符号

 类静态的方法|值调用,格式为"@[类全名(包括包路径)]@[方法名|值名]",例如:

@java.lang.String@format('foo%s','bar')--调用类静态方法
@java.lang.String@CASE_INSENSITIVE_ORDER--访问类的静态值

更多,可以参考官网文档:
OGNL - Apache Commons OGNL - Language Guide

http://www.yayakq.cn/news/157978/

相关文章:

  • 河南省建设工程质量协会网站微信搜索推广
  • 把网站放到服务器上wordpress邮件发送下载
  • 福建厦门网站建设公司哪个网站可以学做馒头
  • 做网站怎么去文化局备案东莞感染人数最新消息
  • 现在建设网站落后了网站地图怎么做一键导航
  • 深圳网站搭建费用沛县网站
  • 自己建网站要多少钱好创意网站有哪些方面
  • 网站建设开源模板郑州网站建设网站制作
  • 下列不属于网站开发技术的是贵州建设厅网站怎么查询资质
  • 科技网站导航广州网站快速排名优化
  • 网站建设添加汉语360收录查询
  • wordpress网站访问很慢做网站不用数据库可以吗
  • 字体版权登记网站千锋教育招聘
  • dede 网站模板咸阳市建设银行网站
  • 临沂市经济开发区建设局网站福州++网站建设
  • 淘宝网站怎么做视频教程企业网站运营
  • 学校网站建设的安全策略延边州建设厅网站
  • 教育类网站如何做抖音seo软件
  • 湖南营销型网站建设 地址磐石网络wordpress 主题 支持文章形式
  • 企业网站建设对网络营销有哪些影响wordpress 新浪微博分享
  • 旅行社网站规划与建设合肥效果图公司哪家好
  • 郑州建设公司网站腾讯企点多少钱一年
  • Oss怎么做静态网站巫溪集团网站建设
  • 网站开发面向对象个人网站可以备案几个
  • 跨境电商网站开发技术胶州网站开发
  • 网站开发需要那些技能wordpress国外网站
  • 织梦做导航网站wordpress 自动剪裁
  • 做商城类网站备案时需提供什么证件网站防御代理
  • 徐汇手机网站建设湘潭网站建设 w磐石网络
  • 做门户网站的框架wordpress菜单的意思