Writing a Setter Method

DEX450 - Module 17: Working with Custom Controllers and Controller Extensions

📄 第 438 页 🎬 视频课程

课程章节介绍

今天我们来聊聊如何在Salesforce中编写一个Setter方法。Setter方法的主要作用是设置一个变量的值。在这个例子中,我们将使用Setter方法来存储用户在页面上输入的搜索文本。 首先,我们来看一下为什么我们不使用DML(数据操作语言)来将数据持久化到数据库中。在这个场景中,我们只是暂时存储用户输入的搜索文本,以便在同一控制器的第二个页面上使用它来显示搜索结果。这意味着我们不需要将数据保存到数据库中,只需要在控制器中临时存储即可。 接下来,我们来看一下如何在Visualforce页面中使用表达式语法来引用Setter方法。在Visualforce页面中,你可以使用`{!DataName}`这样的表达式来引用Setter方法。这样,当用户在输入框中输入文本并点击搜索按钮时,输入的文本就会被传递给Setter方法,并存储在控制器中。 现在,我们来看一个完整的示例代码: ```apex // 控制器类 public class SearchTextController { public String searchText; // Getter方法 public String getSearchText() { return searchText; } // Setter方法 public void setSearchText(String s) { searchText = s; } // 操作方法 public void search() { System.debug('Search Text = ' + searchText); // 打印Visualforce页面中的用户输入 } } ``` ```html ``` 在这个示例中,`SearchTextController`类有一个`searchText`变量,以及对应的Getter和Setter方法。当用户在Visualforce页面的输入框中输入文本并点击“Search”按钮时,输入的文本会通过Setter方法存储在`searchText`变量中。然后,`search`方法会被调用,打印出用户输入的搜索文本。 需要注意的是,Setter方法总是在操作方法之前触发。这一点非常重要,因为它确保了在操作方法执行之前,所有的数据都已经设置好了。这样,你就可以在操作方法中放心地使用这些数据了。 希望这个解释对你有帮助!如果有任何问题,随时问我哦。