Visualforce-3.变量和公式(Variables and Formulas)
1.全局变量和 Visualforce 表达式概述(Global Variables and Visualforce Expressions)
Visualforce 的表达式语法是:{! expression }
The expression syntax in Visualforce is: {! expression }
在渲染页面或使用值时,{! }
分隔符内的任何内容都会进行评估和动态替换。空格会被忽略。
结果值可以是原始值(整数、字符串等)、布尔值、sObject、控制器方法(例如操作方法)和其他有用的结果。
Anything inside the {! }
delimiters is evaluated and dynamically replaced when the page is rendered or when the value is used. Whitespace is ignored.
The resulting value can be a primitive (integer, string, and so on), a Boolean, an sObject, a controller method such as an action method, and other useful results.
2.全局变量(Global Variables)
全局变量可以访问和显示系统值和资源,Visualforce可以使用20多种全局变量。
- 组织详情 ( $Organization)
- 设置 ( $Setup)
- 自定义对象详情 ( $ObjectType)
- 对象可用操作 ( $Action)
- ...
具体参照: Visualforce 全局变量引用
使用方法:
{! $GlobalName.fieldName }
代码示例:
<apex:page> <apex:pageBlock title="User Status"> <apex:pageBlockSection columns="1"> {! $User.FirstName } {! $User.LastName } {! $User.FirstName & ' ' & $User.LastName } {! $User.Username } ({! IF($User.isActive, $User.Username, 'inactive') }) apex:pageBlockSection> apex:pageBlock> apex:page>
{! ...} 告知 Visualforce 大括号内的任何内容都是动态的,并且是用表达式语言编写的。当有人查看页面时,它的值会在运行时进行计算和替换。
Visualforce 表达式不区分大小写,并且忽略 {! ...} 内的空格。以下表达式效果一样:
{! $User.FirstName}
{!$USER.FIRSTNAME}
{! $user.firstname }
3.公式表达式(Formula Expressions)
Visualfoece可以使用十多种函数
详细参照:Visualforce 函数引用
- TODAY()
- YEAR()
- MAX()
- CONTAINS()
- ...
示例:
1 <apex:page> 2 <apex:pageBlock title="User Status"> 3 <apex:pageBlockSection columns="1"> 4 {! $User.FirstName } {! $User.LastName } 5 ({! $User.Username }) 6 <p> Today's Date is {! TODAY() } p> 7 <p> Next week it will be {! TODAY() + 7 } p> 8 <p>The year today is {! YEAR(TODAY()) }p> 9 <p>Tomorrow will be day number {! DAY(TODAY() + 1) }p> 10 <p>Let's find a maximum: {! MAX(1,2,3,4,5,6,5,4,3,2,1) } p> 11 <p>The square root of 49 is {! SQRT(49) }p> 12 <p>Is it true? {! CONTAINS('salesforce.com', 'force.com') }p> 13 apex:pageBlockSection> 14 apex:pageBlock> 15 apex:page>
运行结果:
4.条件表达式(Conditional Expressions)
示例:
{! IF( CONTAINS('salesforce.com','force.com'),'Yep', 'Nope') }
{! IF( DAY(TODAY()) < 15,'Before the 15th', 'The 15th or after') }