<html>
<head>
<META HTTP-EQUIV="CONTENT-TYPE" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<title>OGNL - 附录A. OGNL语言参考</title>
<link href="styles/main.css" rel="stylesheet" type="text/css">
<link href="styles/wiki.css" rel="stylesheet" type="text/css">
<link href="styles/docbook.css" rel="stylesheet" type="text/css">
<link rel="home" href="index.html" title="OGNL 语言指南">
<link rel="up" href="index.html" title="OGNL 语言指南">
<link rel="previous" href="coerceCollection.html" title="将对象解释为集合">
</head>
<body>
<div id="wrap">
<div id="header">
<table border="0" width="100%">
<tbody>
<tr>
<td>
<div id="logo"><a href="/"><img src="images/os-logo.gif"
border=0></a></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="content">
<h1 class="first">OGNL - 附录A. OGNL语言参考</h1>
<div class="navheader">
<table summary="Navigation header" width="100%">
<tr>
<th align="center" colspan="3">附录A. OGNL语言参考</th>
</tr>
<tr>
<td align="left" width="20%"><a accesskey="p"
href="coerceCollection.html"><img
src="images/navigation/prev.gif" alt="Prev"></a> </td>
<th align="center" width="60%"> </th>
<td align="right" width="20%"> </td>
</tr>
</table>
<hr>
</div>
<div class="appendix" lang="zh-CN">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="N10614"></a>附录A. <span class="acronym">OGNL</span>语言参考</h2>
</div>
</div>
<div></div>
</div>
<div class="toc">
<p><b>目录</b></p>
<dl>
<dt><span class="section"><a href="apa.html#operators">操作符</a></span></dt>
</dl>
</div>
<p>本节相当详细地介绍 <span class="acronym">OGNL</span>的语法和实现方式. 包括一个 <span
class="acronym">OGNL</span> 操作符的完整列表, 有一节内容介绍 <span class="acronym">OGNL</span>
如何将对象转换为各种数据类型, 还有一段对 <span class="acronym">OGNL</span> 基本表达式的详细介绍.</p>
<div class="section" lang="zh-CN">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="operators"></a>操作符</h2>
</div>
</div>
<div></div>
</div>
<p><span class="acronym">OGNL</span> 借用了 Java 的大多数操作符,
然后增加了自己独有的几种操作符. 对于大多数操作符, <span class="acronym">OGNL</span> 都按照与 Java
相同的方式来处理, 但是值得特别提醒的是, <span class="acronym">OGNL</span> 基本上是一种无类型语言.
也就是说, <span class="acronym">OGNL</span> 中的所有值都是一个 Java 对象, <span
class="acronym">OGNL</span> 将根据这些对象的使用环境, 尝试把它们转换为有合理含义的值. (参见<a
href="coercion.html" title="第5章. 对象到数据类型的强制转换">第5章. 对象到数据类型的强制转换</a>).</p>
<p>下面是 <span class="acronym">OGNL</span> 操作符一览表,
其中的操作符按照计算优先顺序的逆序排列(优先顺序低的操作符在表的上方, 优先顺序高的操作符在表的下方). 当表中同一行内存在多个操作符时,
它们的优先顺序是相同的, 将按从左到右的顺序来计算 .</p>
<div class="table"><a name="N10644"></a>
<p class="title"><b>表 A.1. <span class="acronym">OGNL</span>操作符</b></p>
<table summary="OGNL Operators" border="1">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th valign="top">操作符</th>
<th valign="top"><tt class="function">关于 getValue()</tt> 的注释</th>
<th valign="top"><tt class="function">关于 setValue()</tt> 的注释</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">
<div class="variablelist">
<dl>
<dt><span class="term"><i class="replaceable"><tt>e1</tt></i><tt
class="literal">,</tt> <i class="replaceable"><tt>e2</tt></i></span></dt>
<dd>
<p>序列操作符</p>
</dd>
</dl>
</div>
</td>
<td valign="top"><tt class="varname">e1</tt> 和 <tt
class="varname">e2</tt> 都使用同一个源对象进行计算, <tt class="varname">e2</tt>
的结果会作为整个表达式的结果返回.</td>
<td valign="top">首先在 <tt class="varname">e1</tt> 上调用<tt
class="function">getValue</tt> , 然后在 <tt class="varname">e2</tt> 上调用
<tt class="function">setValue</tt> .</td>
</tr>
<tr>
<td valign="top">
<div class="variablelist">
<dl>
<dt><span class="term"><i class="replaceable"><tt>e1</tt></i>
<tt class="literal">=</tt> <i class="replaceable"><tt>e2</tt></i></span></dt>
<dd>
<p>赋值操作符</p>
</dd>
</dl>
</div>
</td>
<td valign="top">首先对 <tt class="varname">e2</tt> 调用 <tt
class="function">getValue</tt>, 然后对 <tt class="varname">e1</tt> 调用 <tt
class="function">setValue</tt> 此时使用 <tt class="varname">e2</tt>
的计算结果作为赋值来源.</td>
<td valign="top">不能用作传递给 <tt class="function">setValue</tt>
的顶级表达式.</td>
</tr>
<tr>
<td valign="top">
<div class="variablelist">
<dl>
<dt><span class="term"><i class="replaceable"><tt>e1</tt></i>
<tt class="literal">?</tt> <i class="replaceable"><tt>e2</tt></i> <tt
class="literal">:</tt> <i class="replaceable"><tt>e3</tt></i></span></dt>
<dd>
<p>条件操作符</p>
</dd>
</dl>
</div>
</td>
<td valign="top">首先对 <tt class="varname">e1</tt> 调用 <tt
class="function">getValue</tt> , 结果被<a
href="coercion.html#coerceBoolean"
title="Interpreting Objects as Booleans">解释为布尔值</a>. 然后对 <tt
class="varname">e2</tt> 或 <tt class="varname">e3</tt> 其中之一调用 <tt
class="function">getValue</tt> , 选择哪一个表达式根据 <tt class="varname">e1</tt>
的结果来决定, <tt class="constant">true</tt> 时使用<tt class="varname">e2</tt>,
<tt class="constant">false</tt>时使用 <tt class="varname">e3</tt> . <tt
class="varname">e2</tt> 或 <tt class="varname">e3</tt> 的结果返回最后结果.</td>
<td valign="top">首先对 <tt class="varname">e1</tt> 调用 <tt
class="function">getValue</tt> , 然后根据结果为 <tt class="constant">true</tt>
还是 <tt class="constant">false</tt> 来决定对 <tt class="varname">e2</tt>
还是 <tt class="varname">e3</tt> 调用 <tt class="function">setValue</tt>
.</td>
</tr>
<tr>
<td valign="top">
<div class="variablelist">
<dl>
<dt><span class="term"><i class="replaceable"><tt>e1</tt></i>
<tt class="literal">||</tt> <i class="replaceable"><tt>e2</tt></i>,
<i class="replaceable"><tt>e1</tt> </i> <tt class="literal"> or
</tt><i class="replaceable"><tt>e2</tt></i></span></dt>
<dd>
<p>逻辑 <span class="keycode">或</span> 操作符</p>
</dd>
</dl>
</div>
</td>
<td valign="top">首先对 <tt class="varname">e1</tt> 调用 <tt
class="function">getValue</tt> , 结果被 <a
href="coercion.html#coerceBoolean"
title="Interpreting Objects as Booleans">解释为布尔值</a>. 如果为 <tt
class="constant">true</tt>, 则这个结果立即返回; 如果为 <tt class="constant">false</tt>,
对 <tt class="varname">e2</tt> 调用 <tt class="function">getValue</tt> ,
并返回其结果.</td>
<td valign="top">首先对 <tt class="varname">e1</tt> 调用 <tt
class="function">getValue</tt> ; 如果为 <tt class="constant">false</tt>,
则对 <tt class="varname">e2</tt> 调用 <tt class="function">setValue</tt>.
注意, 如果 <tt class="varname">e1</tt> 为 <tt class="constant">true</tt>
则会阻止设值操作发生.</td>
</tr>
<tr>
<td valign="top">
<div class="variablelist">
<dl>
<dt><span class="term"><i class="replaceable"><tt>e1</tt></i>
<tt class="literal">&&</tt> <i class="replaceable"><tt>e2</tt></i>,
没有合适的资源?快使用搜索试试~ 我知道了~
OGNL-中文版说明文档HTML
共36个文件
html:27个
gif:6个
css:3个
需积分: 3 0 下载量 70 浏览量
2023-01-18
09:37:50
上传
评论
收藏 76KB ZIP 举报
温馨提示
OGNL-中文版说明文档HTML
资源推荐
资源详情
资源评论
收起资源包目录
OGNL-中文版说明文档HTML.zip (36个子文件)
OGNL-中文版说明文档
OGNL-LanguageGuide-ch
OGNL-LanguageGuide-ch-20101115
indexing.html 6KB
introduction.html 5KB
expressionEvaluation.html 5KB
coerceInteger.html 3KB
constructors.html 4KB
lambdaExpressions.html 4KB
methods.html 4KB
properties.html 4KB
styles
wiki.css 3KB
main.css 4KB
docbook.css 2KB
staticMethods.html 3KB
projection.html 4KB
coerceCollection.html 4KB
coercion.html 5KB
specialCollectionsProperties.html 8KB
settingVersusGetting.html 4KB
selection.html 5KB
paren.html 3KB
index.html 7KB
chainedSubexpressions.html 4KB
collectionConstruction.html 5KB
basicExpressions.html 6KB
history.html 3KB
images
navigation
prev.gif 389B
home.gif 213B
up.gif 595B
next.gif 393B
admon
note.gif 1KB
os-logo.gif 3KB
varref.html 4KB
differences.html 4KB
staticFields.html 4KB
apa.html 29KB
coerceNumber.html 5KB
basicSyntax.html 6KB
共 36 条
- 1
资源评论
Poineer1213
- 粉丝: 12
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功