Navigating to a New Page Using a PageReference

DEX450 - Introductions and Overview

📄 第 456 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何在Salesforce中使用`PageReference`来导航到新页面。这个过程其实很简单,我会用通俗易懂的方式来解释。 首先,`PageReference`是Salesforce中的一个类,它可以帮助我们在Apex代码中控制页面的跳转。比如,当用户点击一个按钮后,我们可能希望他们被带到另一个页面。这时候,`PageReference`就派上用场了。 我们来看一个简单的例子。假设我们有一个控制器类`MySecondController`,里面有一个方法`Save`。这个方法的作用是保存一个`Account`记录,然后跳转到这个`Account`的详情页面。 ```apex public class MySecondController { Account account; public Account getCal() { if (account == null) account = new Account(); return account; } public PageReference Save() { insert account; PageReference acctPage = new ApexPages.StandardController(account).view(); acctPage.setRedirect(true); return acctPage; } } ``` ### 代码解析: 1. ,Account对象,:我们有一个`Account`对象,用来存储用户输入的数据。 2. ,getCal方法,:这个方法用来获取`Account`对象。如果`Account`对象是空的,我们就创建一个新的`Account`对象。 3. ,Save方法,:这是我们的重点。这个方法做了几件事: - ,插入记录,:首先,我们使用`insert account;`将`Account`记录保存到数据库中。 - ,创建PageReference,:然后,我们使用`new ApexPages.StandardController(account).view();`创建一个`PageReference`对象。这个对象会指向刚刚保存的`Account`记录的详情页面。 - ,设置重定向,:我们调用`acctPage.setRedirect(true);`来确保页面跳转时,浏览器会重新加载页面。 - ,返回PageReference,:最后,我们返回这个`PageReference`对象,Salesforce会自动将用户带到这个页面。 ### 教学要点: - ,PageReference的作用,:它可以帮助我们在Apex代码中控制页面的跳转。 - ,StandardController,:这是一个内置的控制器,它可以帮助我们轻松地操作标准对象的记录。 - ,setRedirect(true),:这个方法确保页面跳转时,浏览器会重新加载页面,这样可以避免缓存问题。 ### 总结: 通过`PageReference`,我们可以轻松地在Apex代码中实现页面跳转。在这个例子中,我们保存了一个`Account`记录,然后跳转到这个记录的详情页面。这个过程非常直观,也很容易理解。 希望这个解释对你有帮助!如果你有任何问题,随时问我哦!