Visualforce 页面中的 <apex: page> 组件

2025年3月17日 | 阅读 7 分钟

这是一个标准的 Visualforce 组件,在 Visualforce 中非常重要,因为每个页面都以该组件开始。所有其他 Visualforce 组件都必须包含在 <apex: page> 组件内。

它通过 "html-" 前缀支持 HTML 直通属性。直通属性会附加到生成的 <html> 标签上。

让我们通过一个例子来理解如何使用这个组件。

ApexPageExample.vfp

输出

apex: page component in Visualforce Page

属性

Visualforce 的 <apex: page> 组件提供以下属性:

1. action

action 属性的类型是 ApexPages.Action。当服务器请求页面时,会调用 action 方法。为了定义 action 方法,我们使用表达式语言来引用该方法。

语法

这里,“{!doAction}”引用控制器中的 doAction() 方法。

action 属性是可选的,所以如果我们不指定它,页面将正常加载。如果 doAction() 方法返回 null,页面将简单地刷新。

action 方法在调用控制器类构造函数后或在页面渲染之前调用。action 属性允许我们选择性地重定向到另一个页面。

注意:在 action 方法中,我们不使用初始化或 DML。

2. apiVersion

apiVersion 属性的类型是 double。apiVersion 属性用于定义用于渲染和执行页面的 API 版本。

语法

3. applyBodyTag

applyBodyTag 属性的类型是 Boolean,用于指定 Visualforce 是否自动将 <body> 标签添加到生成的 HTML 输出中。我们将 applyBodyTag 设置为 false 以禁用向响应添加 <body> 标签,例如,当 <body> 标签在标记中静态设置时。如果未指定,此值将默认为 applyHtmlTag 属性的值(如果已设置),或者如果 applyHtmlTag 未设置,则默认为 true。

语法

4. applyHtmlTag

applyHtmlTag 也是一个 Boolean 类型属性,用于指定 Visualforce 是否自动将 <html> 标签添加到生成的 HTML 输出中。设置为 false 可禁用向响应添加 <html> 标签,例如,当 <html> 标签在标记中静态设置时。如果未指定,此值默认为 true。

语法

5. cache

这是另一个 Boolean 类型属性,用于指定浏览器是否缓存此页面。如果我们将其设置为 true,浏览器将缓存此页面;否则,则不缓存。如果未指定 cache 属性,则默认假定其值为 false。

但是,默认情况下,所有 Force.com 站点页面的 cache 属性值都为 true。

如果我们为 Hyperforce 客户将属性值设置为 true,则允许我们使用 Salesforce Edge 全局缓存。

语法

6. contentType

contentType 是一个 String 类型属性,用于格式化渲染的页面。contentType 属性的值可以是以下之一:

  1. text/html
  2. text/csv
  3. image/png
  4. image/gif
  5. video/mpeg
  6. text/css
  7. audio/basic

我们可以通过在 MIME 类型后面附加一个 "#" 和文件名来设置渲染页面的文件名。

语法

注意:不支持将内容类型从 HTML 动态切换到非 HTML 类型,如 text/csv 或 image/png。

7. controller

这是一个 String 类型属性,用于指定控制此页面行为的 Apex 类。当 standardController 已在使用时,不能使用 controller 属性。

语法

8. cspHeader

cspHeader 属性是另一个 Boolean 类型属性,用于指示此页面是否使用 CSP(内容安全策略)来限制内容。如果我们将其值设置为 true,浏览器仅当服务器定义为 CSPTrustedSite 且上下文为 VF 或 All 时,才会从页面向外部服务器发出请求。

语法

9. deferLastCommandUnityReady

这是一个 Boolean 属性,用于指定是否需要防止命令按钮和链接过早单击。默认情况下,其值为 false,当我们将其设置为 true 时,按钮或链接的最后一次单击将被排队并在页面准备好后处理。

语法

10. docType

docType 属性用于为 VF 页面指定不同的 doctype。默认情况下,VF 页面以 HTML 4.01 Transitional 的 doctype 提供。

为了创建具有 XHTML 1.0 Strict 文档类型的 VF 页面,我们通过以下方式添加 docType 属性:

语法

11. expires

"expires" 属性是一个 Integer 类型属性,用于以秒为单位定义 cache 属性的到期时间。如果未定义 "expires" 属性且 cache 属性设置为 true,则 "expires" 属性的默认值为 0。

但是,对于 Force.com 站点页面,当 cache 未设置为 false 时,"expires" 属性的默认值为 600 秒。

语法

12. extensions

如果我们想将自定义控制器与 standardController 一起使用,则使用 extensions 属性。我们可以添加多个自定义控制器扩展以添加额外的页面逻辑。

语法

13. id

这是最重要的属性之一,用于允许页面上的其他组件引用此页面。

语法

14. label

label 属性用于在 Salesforce 设置工具中引用此页面。

语法

15. language

language 属性用于显示在 Salesforce 中具有关联翻译的标签。language 属性中定义的值会覆盖查看页面的用户的语言。

语法

16. lightningStylesheets

另一个重要的 Boolean 类型属性,用于控制 Visualforce 页面在 Lightning Experience 中查看时的样式。如果此属性设置为 true 且页面在 Lightning Experience 中查看,则 Lightning Experience 样式表将应用于该页面。

如果未指定此属性或设置为 false,则始终使用经典样式表。

注意:如果同时使用 standardStylesheets 和 lightningStylesheets,则 lightningStylesheets 属性将覆盖 standardStylesheets 属性。

语法

17. manifest

它用于为生成的 <html> 标签添加 manifest 属性,该属性引用用于离线使用的缓存清单文件。

语法

18. name

name 属性用于定义用于在 Lightning Platform API 中引用页面的唯一名称。

语法

19. pageStyle

此属性在 Salesforce API 版本 16.0 中已弃用。

20. readOnly

readOnly 属性用于启用 VF 页面的只读模式。启用只读模式时,页面无法执行任何 DML 操作。

语法

21. recordSetName

此属性在 Salesforce API 版本 16.0 中已弃用。

22. recordSetVar

此属性指示页面使用面向集合的标准控制器。该属性的值指示传递给页面的记录集名称。此记录集可在表达式中使用,以返回要在页面上显示的值或对记录集执行操作。

语法

23. renderAs

任何受支持的内容转换器的名称。目前,PDF 是唯一受支持的内容转换器。将此属性设置为 "pdf" 会将页面渲染为 PDF。

语法

24. rendered

这是另一个 Boolean 类型属性,用于指定页面是否渲染。默认情况下,其值设置为 true。

语法

25. setup

这是一个 Boolean 属性,用于指定页面是否使用标准 Salesforce 设置页面的样式。如果未指定此属性,则默认值为 false。

语法

26. showChat

一个 Boolean 属性,用于指定页面是否包含 Chatter Messenger 聊天小部件。

语法

27. showHeader

这是一个 Boolean 属性,用于指定是否在页面上包含 Salesforce 选项卡标题。默认值为 true。

语法

28. showQuickActionVfHeader

这是一个 Boolean 属性,用于指定是否需要显示调用此页面的快速操作的标题。默认值为 true。

语法

<apex:page showQuickActionVfHeader="true"></apex:page>

29. sidebar

这是一个 Boolean 属性,用于指定是否在页面上包含标准的 Salesforce 侧边栏。其默认值为 false。

语法

30. standardController

它是 String 类型,用于定义控制页面行为的 Salesforce 对象。

语法

31. standardStylesheets

一个 Boolean 属性,用于将 Salesforce 标准样式表应用于当 showHeader 设置为 false 时生成的页面标题。默认情况下,其值设置为 true。

语法

32. tabStyle

另一个 String 类型属性,用于定义 Salesforce 对象或自定义 Visualforce 选项卡,以控制此页面的颜色、选定的选项卡和样式。对于自定义对象,应使用该对象的开发名称指定 tabStyle 属性。

语法

33. title

另一个 String 类型属性,负责在 VF 页面中生成 HTML<title> 元素。

语法

34. wizard

另一个 Boolean 属性,负责应用标准 Salesforce 向导页面的样式。默认情况下,其值设置为 false。

语法