Visualforce简介

Visualforce

Visualforce是一个和Apex语言相匹配的开发框架。开发者可以使用Visualforce和Apex建立自定义网络应用程序。

Visualforce的基本功能类似于前端框架,可以构建页面,与后端的Apex进行数据交流,并将结果显示给用户。在MVC结构中扮演V的角色。

Visualforce还可以与Salesforce系统中的标准功能相结合,对标准功能进行扩展或重写。

Visualforce页面源码

Visualforce页面源码和HTML类似,并且可以调用系统预置的多种组件直接建立页面元素,也可以用HTML语言建立标准的网页。

建立基本的Visualforce页面

在Developer Console中,点击菜单“File”,选择“New”,点击“Visualforce Page”,在弹出的对话框中输入名称,即可建立Visualforce页面。

建立Visualforce页面

Visualforce页面的内容都是包括在“apex:page”标签中。在其中可以输入HTML内容,也可以使用系统预置的Visualforce组件。比如下面的页面代码:

<apex:page >
    <h1>
        This is title.
    </h1>
    
    <p>
        This is content of p tag.
    </p>
    
    <apex:pageBlock title="page block title">
        <apex:pageBlockSection title="page block section title">
            This is inside page block section.
        </apex:pageBlockSection>
    </apex:pageBlock>
</apex:page>

在Develop Console中建立这样一个Visualforce页面,然后点击编辑区域左上方的“Preview”按钮,即可预览建立页面的效果。

Visualforce页面预览

如图中所示,在整个Salesforce界面中间的部分,就是刚刚建立的Visualforce页面的内容。上半部分是由普通HTML代码形成,下半部分是由系统内置的组件所形成。

去除侧边栏

在上面的代码中,如果在“apex:page”标签里设置“sidebar”属性为假,则此页面在显示时不会有侧边栏。

<apex:page sidebar="false">

无侧边栏的Visualforce页面预览

去除Salesforce标准页面元素

在上面的代码中,如果在“apex:page”标签里设置“showHeader”属性为假,则此页面在显示时不会有包括侧边栏、菜单栏等Salesforce的标准页面元素,用于开发者完全自定义页面外观。

<apex:page showHeader="false">

无标准页面元素的Visualforce页面预览

在Visualforce页面中使用变量和表达式

Visualforce页面可以与后端交流并得到数据。要在页面中显示这些数据,可以使用固定格式的变量和表达式。

变量和表达式的语法:

{! 变量或表达式名字 }

变量和表达式可以是基本数据类型,或者sObject对象。

全局变量

Visualforce中预定义了一些全局变量。在使用这些全局变量时,要在变量名前加“$”符号。

比如当前登录的用户信息保存在全局变量$User中,在Visualforce中可以使用它来显示当前用户信息。

<apex:page >
    <apex:pageBlock title="page block title">
        <apex:pageBlockSection title="page block section title">
            {! $User.FirstName } - {! $User.LastName }
        </apex:pageBlockSection>
    </apex:pageBlock>
</apex:page>

显示当前用户信息的Visualforce页面预览

使用表达式

显示变量时,可以显示包括了变量的基本表达式或者逻辑表达式。

<!-- 显示用户的全名,并在FirstName和LastName之间加入一个空格 -->
{! $User.FirstName & ' ' & $User.LastName }

<!-- 显示当前日期的年份 -->
{! YEAR(TODAY()) }

<!-- 如果用户状态是激活的,则显示用户名,否则显示“inactive”字样 -->
{! IF($User.isActive, $User.Username, 'inactive') }
posted @ 2017-11-29 21:01  程程哥  阅读(1161)  评论(0编辑  收藏  举报