作者:巴黎不快乐123 | 来源:互联网 | 2024-12-05 11:40
EBSOAF12.2开发中对EL(ExpressionLanguage)的支持(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究
EBS OAF 12.2开发中对EL(ExpressionLanguage)的支持
(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
概览
Expression language(EL)是一种脚本语言,它可以使你通过JSP更容易访问和操作Java应用数据。在R12.2中,EL得到了增强以支持更多的属性,更多的EL类型,在EL中操作符的使用,在EL中静态文本的连接使用。
注意:在12.2之前,对EL的支持叫做SPEL(Simplest Possible Expression Language)支持,其中支持的EL类型和EL属性都属于现在EL的一部分。
内容
l 支持的EL类型
l 在EL中使用操作符
l 使用EL绑定静态文本
l EL支持的属性
支持的EL类型
下面的表中描述了OAF支持的EL类型。
EL 类型 | 描述 |
${oa.<ViewInstance>.<ViewAttr>} | 等于<ViewInstance>.getAttribute("<ViewAttr>"). |
${oa.current.<ViewAttr>} | 等于对于当前bean绑定的视图对象实例调用getAttribute("<ViewAttr>"). |
${oa.encrypt.<ViewInstance>.<ViewAttr>} | 返回<ViewInstance>.getAttribute("<ViewAttr>")加密后的值。 |
${oa.FunctionSecurity.<FunctionName>} | 依赖于FunctionName是否分配给当前用户而返回true或者false. |
${oa.request.<paramName>} | 等于pageContext.getParameter("<paramName>"). |
${oa.session.<paramName>} | 等于pageContext.getSessionValue("<paramName>"). |
${oa.sessiondirect.<paramName>} | 等于pageContext.getSessionValueDirect("<paramName>"). |
${oa.txn.<paramName>} | 等于pageContext.getTransactionValue("<paramName>"). |
${oa.txntrans.<paramName>} | 等于pageContext.getTransactionTransientValue("<paramName>"). |
${oa.pageContext.<methodName>} | 等于pageContext.<methodName>(). 注意:使用这个EL语法的时候,仅public的无参数的方法可以被调用。 |
${oa.class.<className>.<methodName>} | 调用指定类中的方法. 注意: l >必须是一个完全有效的类名。 l 类必须有无参构造器 l 使用这个EL语法的时候,仅public的无参数的方法可以被调用 |
在EL中使用操作符
在EL表达式中可以使用下面的操作符。
l +
l -
l *
l /
l %
l >
l >=
l <
l <=
l ==
l !=
l &&
l ||
使用说明:
l 使用oa.boolean.false或者oa.boolean.true分别来表示Boolean.FALSE或者Boolean.TRUE.
l 对于否定或者!(NOT)操作符,使用oa.boolean.false,就像示例中演示的${oa.session.isItemRendered== oa.boolean.false}.。
l 对于EL表达式:
? 你可以仅指定一个静态的数字值。
? 使用${oa.text.<TEXT>}来代表一个字符串.
? 使用oa.boolean.false 或者oa.boolean.true来代表Boolean.
使用示例
- ${oa.session.param1 == oa.request.param1}
- ${oa.session.paramLength + ( oa.request.fieldLength * 2 ) }
- ${oa.session.isItemRendered == oa.boolean.false}
在EL中连接静态文本
使用语法${oa.text.<TEXT>}来把静态文本追加在EL表达式之前或之后。
使用说明
l 注意:如果你添加静态文本到EL表达式,注意静态文本不会被翻译,并且文本的顺序依赖于语言可能差别很大。
l 你可以以任意顺序附加文本到EL表达式,就像这些示例演示的,这里${EL}代表任意有效的EL类型:
? ${oa.text.<TEXT>} + ${EL}
? ${EL}+ ${oa.text.<TEXT>}+ ${EL}
使用示例
${oa.text.Welcome Mr.} + ${oa.EmpVO.Empname}
EL支持的属性
下面的区域和/或者 item属性支持EL:
属性 | 数据类型 | 有效值 |
Required | String | l Yes l No l uiOnly l validaterOnly |
Read Only | Boolean | l Boolean.TRUE l Boolean.FALSE |
Rendered | Boolean | l Boolean.TRUE l Boolean.FALSE |
Disabled | Boolean | l Boolean.TRUE l Boolean.FALSE |
Prompt | String | 任意字符串值 |
Sort Allowed | Boolean | l Boolean.TRUE l Boolean.FALSE 注意:EL支持的Sort Allowed属性仅对items有效,对regions无效 |
Maximum Length | Number | Integer.intValue() |
上面列出的所有属性,除了Disabled,可能会被个性化。更多信息,参考OA Framework Personalization Guide中的Personalizing EL-supporting Properties。