b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

el表达式_el表达式取值_el表达式三元运算符(2)

电脑杂谈  发布时间:2016-12-29 17:04:25  来源:网络整理

可以使用个性化的EL解析器来处理变量。举个例子,可以提供一个EL解析器来根据customer的name属性拦截对象,这样${customer}就会被EL解析器的返回值取代。

在表达式中可以使用字符串引用枚举常量。例如,考虑枚举类:

public enum Suit {hearts, spades, diamonds, clubs}

为了使用表达式引用Suit的Suit.hearts常量,可以使用字符串“hearts”。有了这个文本,字符串可以自动转换为枚举常量。例如,下面这个表达式,mySuit是Suit的实例,在“hearts”与mySuit实例比较之前,它首先被转换为Suit.hearts。

${mySuit == 'hearts'}

使用值表达式引用对象属性

要引用某个Bean或者某个枚举实例的属性、集合项或者隐式对象的属性,可以使用.或者[]符号。

引用customerBean的名字属性,既可以使用${customer.name}也可以使用${customer['name']}表达式。括号内字符串内容是要引用的属性名称。字符串内容既可以使用单引号也可以使用双引号。也可以结合符号[]和.来使用,如:

${customer.address['street']}

枚举常量的属性也可以这样引用。枚举类的属性必须符合JavaBean组件的规范,也就是说,至少要有一个get方法用来访问属性。

例如,思考一个枚举类,这个类封装了银河系行星的名字,并有一个方法用来获取行星的质量。那么就可以使用下面的表达式来引用枚举类Planet的getMass方法。

${myPlanet.mass}

如果要访问数组或者列表的项,那么必须使用可以转换为整型的文字值或者[]符号(里面放不带引号的整型数)。下面的例子代表列表或者数组的同一个项,假设socks可以转换为整型。

n ${customer.orders[1]}

n ${customer.orders.socks}

相比之下,Map的项却可以使用字符串文字访问,而不需要以上要求:

${customer.orders['socks']}

右值表达式也可以直接引用对象或非对象的值,例如算数运算的结果和文字值,例子如下:

n ${'literal'}

n ${customer.age + 20}

n ${true}

n ${57}

EL对以下文字有定义:

n Boolean:true和flase

n Integer:与Java一样

n Floating-point:与Java一样

n String:使用单引号或者双引号;\”转义为”,\’转义为 ’,\\转义为\

n Null:null

也可以对枚举常量编写表达式,例如,思考下面的枚举类:

public enum Suit {club, diamond, heart, spade}

定义好枚举常量mySuit后,可以通过以下表达式来测试mySuit对象的值是否是spade:

mySuit.valueOf(Suit.class, 'spade'}

值表达式的使用范围

使用${}分隔符的值表达式可以用在:

n 静态文本

n 任何可以接受的标准的或是自定义的标签属性表达式

静态文本的值表达式会被当前的输出计算并取代。这里是一个嵌入在静态文本中值表达式的例子:

some text ${expr} some text

如果静态文本出现在标签体中,注意如果标签体被定义为标签依赖,那么表达式将不会被计算。

左值表达式只能用在能接受左值表达式的标签属性中。

使用右值或者左值表达式的标签属性值可以通过以下方式设置:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23837-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 付宝侠
      付宝侠

      你是美国佬的私生子吗

    • 汪刚
      汪刚

      农民才55元能做什么

      • 李华敏
        李华敏

        他们了解世界更了解我们大陆

    • 安程
      安程

      让侵略者知道中国人不是懦夫

    每日福利
    热点图片
    拼命载入中...