上一篇介紹VF中常用的變量,此篇主要內(nèi)容為VF頁(yè)面可以直接使用的函數(shù),主要包括Date相關(guān)函數(shù),Text相關(guān)函數(shù),Information相關(guān)函數(shù)以及l(fā)ogic相關(guān)函數(shù),其他相關(guān)函數(shù),比如math相關(guān)函數(shù)等可以自行去練習(xí)使用。

一.Date相關(guān)常用函數(shù)

使用Date相關(guān)函數(shù)可以很輕松的獲取今天、現(xiàn)在時(shí)刻等信息,主要函數(shù)如下:

1.now():此函數(shù)可以獲取當(dāng)前時(shí)刻的信息,精確到秒,如果需要某種格式的顯示,可以進(jìn)行相關(guān)格式的format;

2.today():此函數(shù)可以獲取當(dāng)前日期的信息,包括年月日;

3.year(date):此函數(shù)獲取指定date的年的信息,使用此函數(shù)需要傳遞一個(gè)date類型的參數(shù);

4.month(date):此函數(shù)獲取指定date的月的信息,使用此函數(shù)需要傳遞一個(gè)date類型的參數(shù);

5.day(date):此函數(shù)獲取指定date的日的信息,使用此函數(shù)需要傳遞一個(gè)date類型的參數(shù);

6.date(year,month,day):此函數(shù)通過(guò)參數(shù)傳遞年月日三個(gè)參數(shù)返回一個(gè)date類型的結(jié)果,包括年月日以及星期等信息;

7.datevalue(expression):此函數(shù)通過(guò)expression轉(zhuǎn)換成date值,參數(shù)可以是date/time value或者text value或者表達(dá)式;

8.datetimevalue(expression):此函數(shù)通過(guò)expression轉(zhuǎn)換成date/time值,參數(shù)可以是date/time value或者text value或者表達(dá)式。

代碼舉例:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

 1 <apex:page > 2     <apex:pageBlock title="日期相關(guān)函數(shù)匯總"> 3         當(dāng)前的時(shí)間為: 4         <apex:outputText value="{0,date,YYYY-MM-DD HH:mm:ss}"> 5             <apex:param value="{!now()}" /> 6         </apex:outputText> 7         <br /> 8         當(dāng)前的日期為: 9         <apex:outputText value="{!TODAY()}"></apex:outputText>10         <br />11         當(dāng)前的日期(格式轉(zhuǎn)換)為:12         <apex:outputText value="{0,date,YYYY-MM-DD}">13             <apex:param value="{!TODAY()}" />14         </apex:outputText>15         <br />16         當(dāng)前日期的年:17         <apex:outputText value="{!year(today())}"></apex:outputText>18         <br />19         當(dāng)前日期的月:20         <apex:outputText value="{!month(today())}"></apex:outputText>21         <br />22         當(dāng)前日期的日:23         <apex:outputText value="{!day(today())}"></apex:outputText>24         <br />25         自定義年月日設(shè)置日期:26         <apex:outputText value="{!date(2017,2,13)}"></apex:outputText>27         <br />28         使用datevalue函數(shù)顯示日期(參數(shù)為date/time類型):29         <apex:outputText value="{!datevalue(now())}"></apex:outputText>30         <br />31         使用datevalue函數(shù)顯示日期(參數(shù)為文本類型):32         <apex:outputText value="{!datevalue('2017-02-13')}"></apex:outputText>33         <br />34         使用DATETIMEVALUE函數(shù)返回一個(gè)日期+GMT時(shí)間的值,傳遞的參數(shù)可以為date/time類型也可以為字符串:35         <apex:outputText value="{!datetimevalue('2017-02-13 11:00:00')}"></apex:outputText>36     </apex:pageBlock>37 </apex:page>

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

運(yùn)行結(jié)果:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

二.Information相關(guān)函數(shù)

1.BLANKVALUE(expression,substitute_expression):當(dāng)某個(gè)變量或者某個(gè)值為空字符串情況下設(shè)置默認(rèn)值,形參一為變量,形參二為所替換成的默認(rèn)值;

2.ISBLANK(expression):判斷某個(gè)表達(dá)式或者變量是否為空,如果value為空或者為null則返回true,否則返回false;

3.NULLVALUE(expression,substitute_expression):當(dāng)某個(gè)變量或者某個(gè)值為null情況下設(shè)置默認(rèn)值,形參一為變量,形參二為所替換成的默認(rèn)值;

4.PRIORVALUE:通常用于validation rule中獲取update前一刻的值。

代碼舉例:

1.controller層聲明一個(gè)變量,設(shè)置為null情況

public with sharing class InformationRelatedFunctionController {    public String testVariable{get;set;}
}

2.page層對(duì)function進(jìn)行測(cè)試

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

<apex:page controller="InformationRelatedFunctionController">
    testVariable是否為空:<apex:outputText value="{!ISBLANK(testVariable)}"></apex:outputText>
    <br/>
    testVariable是否為null:<apex:outputText value="{!ISNULL(testVariable)}"></apex:outputText>
    <br/>
    testVariable為空情況下設(shè)置一個(gè)默認(rèn)值:<apex:outputText value="{!blankvalue(testVariable,'測(cè)試默認(rèn)值')}"></apex:outputText>
    <br/></apex:page>

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

運(yùn)行效果:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

三.Logical Function相關(guān)函數(shù)

1.AND(logical1,logical2,...):所有的邏輯均為true情況下返回true;

2.CASE(expression,case1,result1,case2,result2,...,else-result):類似apex或者java中的switch case用法;

3.IF(logical_test, value_if_true, value_if_false):針對(duì)邏輯表達(dá)式,正確執(zhí)行value_if_true,錯(cuò)誤執(zhí)行value_if_false;

4.ISCHANGED(field):判斷字段前后是否有更改,通常用于validation rule中判斷某字段前后是否更改;

5.ISNEW():判斷某個(gè)formula字段的記錄是否是新建的,如果記錄是新建的則返回true,如果對(duì)于已經(jīng)存在的記錄此字段被更新,則返回false;

6.ISNUMBER(text):判斷text文本是否全部為數(shù)字,如果全部是數(shù)字,則返回true,否則為false;

7.NOT(logical):對(duì)邏輯內(nèi)容取反操作,等同于 !logical;

8.OR(logical1,logical2,...):所有的邏輯中只要有一個(gè)為true則返回true;

 部分函數(shù)代碼舉例:

1.LogicalRelatedFunctionController :聲明兩個(gè)變量,用于page頁(yè)的業(yè)務(wù)邏輯處理

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

 1 public with sharing class LogicalRelatedFunctionController { 2     public String testNumber{ 3         get{ 4             return '123'; 5         } 6          7     } 8      9     public Integer comparedValue{10         get{11             return 1;12         }13     }14 }

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

2.LogicalRelatedFunctionPage:函數(shù)應(yīng)用

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

 1 <apex:page controller="LogicalRelatedFunctionController"> 2     <apex:pageBlock title="isnumber函數(shù)用法"> 3         testNumber是否為數(shù)字:<apex:outputText value="{!ISNUMBER(testNumber)}"></apex:outputText> 4     </apex:pageBlock> 5     <apex:pageBlock title="and函數(shù)用法"> 6         <apex:outputText value="只有testNumber是數(shù)字并且comparedValue大于0才會(huì)顯示此段內(nèi)容" 7         rendered="{!AND(isnumber(testNumber),comparedValue>0)}"> 8         </apex:outputText> 9     </apex:pageBlock>10     <apex:pageBlock title="case函數(shù)用法">11         {!CASE(comparedValue,0,'value is 0',1,'value is 1','value is other')}12     </apex:pageBlock>13     <apex:pageBlock title="IF函數(shù)用法">14         <apex:outputText value="text value" style="{!IF(comparedValue>0,'color:red;','')}">15         </apex:outputText>16     </apex:pageBlock>17 </apex:page>

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

運(yùn)行效果:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

四.Text Function相關(guān)常用函數(shù)

1.BEGINS(text,compare_text):判斷某個(gè)字符串是否以指定的字符串開(kāi)始,是返回true,否則返回false;

2.BR():插入一行,類似HTML中的<br/>

3.CONTAINS(text, compare_text) :判斷字符串中是否包含指定的字符串,如果包含返回true,否則返回false;

4.FIND(search_text, text[, start_num]) :查詢指定的字符串在字符串的位置,類似apex中的indexOf方法的功能,坐標(biāo)從1開(kāi)始;

5.ISPICKVAL(picklist_field, text_literal):判斷picklist字段當(dāng)前的記錄是否為某個(gè)字符串;

6.LEN(text):返回字符串的長(zhǎng)度;

7.TEXT(value):將其他類型轉(zhuǎn)換成字符串,包括percent/number/date等;

8.TRIM(text):將字符串進(jìn)行去空處理,與apex中String.trim用法相同;

9.VALUE(text):將字符串轉(zhuǎn)換成number類型。

部分函數(shù)代碼舉例:

 1.TextRelatedFunctionController:定義三種對(duì)象,方便page頁(yè)邏輯處理

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

 1 public with sharing class TextRelatedFunctionController { 2     public String testVariable{get{ 3         return 'test value'; 4     }} 5      6     public String testTrimVariable{get{ 7         return ' test value '; 8     }} 9     10     public String testToNumberVariable {get{11         return '123';12     }}13 }

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

2.TextRelatedFunctionPage:部分函數(shù)使用舉例

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

 1 <apex:page controller="TextRelatedFunctionController"> 2     testVariable對(duì)象的值為:{!testVariable} 3     <apex:pageBlock title="BEGINS函數(shù)用法"> 4         testVariable對(duì)象值是否以test字符開(kāi)始 :  {!BEGINS(testVariable,'test')} 5     </apex:pageBlock> 6     <apex:pageBlock title="CONTAINS函數(shù)用法"> 7         testVariable對(duì)象值是否包含test字符 :  {!CONTAINS(testVariable,'test')} 8     </apex:pageBlock> 9     10     <apex:pageBlock title="FIND函數(shù)用法">11         testVariable對(duì)象中l(wèi)ue所在的位置:{!FIND('lue',testVariable)}12     </apex:pageBlock>13     <apex:pageBlock title="LEN函數(shù)用法">14         testTrimVariable對(duì)象值的長(zhǎng)度為: {!LEN(testTrimVariable)}15     </apex:pageBlock>16     <apex:pageBlock title="TRIM函數(shù)用法">17         testTrimVariable對(duì)象trim以后長(zhǎng)度為:{!LEN(TRIM(testTrimVariable))}18     </apex:pageBlock>19     <apex:pageBlock title="VALUE函數(shù)用法">20         <apex:outputText value="{!IF(VALUE(testToNumberVariable) > 100,'testToNumberVariable轉(zhuǎn)換成number大于100','testToNumberVariable轉(zhuǎn)換成number小于100')}">21         </apex:outputText>22     </apex:pageBlock>23 </apex:page>

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

運(yùn)行效果:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

總結(jié):此篇只是講解一些簡(jiǎn)單常用的函數(shù)的用法,還有一些其他的比如Math相關(guān)的,Encoding相關(guān)的等函數(shù)沒(méi)有列出,如果VF頁(yè)需要使用到相關(guān)函數(shù)時(shí),請(qǐng)參考page的PDF,此片僅起到拋磚引玉作用。篇中描述有錯(cuò)誤的地方歡迎指出,有不懂得歡迎留言。

作者:zero

博客地址:http://www.cnblogs.com/zero-zyq/

本文歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接

個(gè)人下載了一些相關(guān)學(xué)習(xí)的PDF文件,如果需要下載請(qǐng)?jiān)L問(wèn)百度云 點(diǎn)擊此處訪問(wèn) 密碼:jhuy

如果文章的內(nèi)容對(duì)你有幫助,歡迎點(diǎn)贊~

http://www.cnblogs.com/zero-zyq/p/6393527.html