Visualforce Classes & JavaScript Remoting

DEX455 - Apex 电子邮件服务、Visualforce、AJAX 与事务限制完全指南

📄 第 266 页 🎬 视频课程

课程章节介绍

同学们,我们来看这张幻灯片讲的内容。它说的是,在Salesforce里,我们可以用Apex来写一些自定义的代码,然后把这些代码用到Visualforce页面上去。 那怎么用呢?主要有两种方式。第一种,叫做自定义控制器或者控制器扩展。简单说,就是你可以自己写一个Apex类,来控制Visualforce页面背后的逻辑,比如从数据库查数据、处理点击按钮这些事。 第二种方式,就是我们今天要重点聊的:JavaScript Remoting。这个功能很实用,它可以让你在Visualforce页面上,直接用JavaScript来调用后台Apex的方法,不用刷新整个页面。这样用户体验会更好,因为响应很快。 那怎么在Apex代码里让一个方法能被JavaScript远程调用呢?你需要在这个方法前面加上一个注解,叫做 @RemoteAction。注意,方法有几个要求:必须是静态的——也就是static,而且访问级别必须是global或者public。不能是private的。 在JavaScript这边怎么调用呢?调用的格式是:控制器名.方法名,然后括号里传参数。参数有几个呢?第一部分是你这个方法本身需要的参数;第二部分是一个回调函数,用来处理返回的结果;第三部分是一个可选的配置对象。举个例子,大概是这个样子:MyController.getAccount(accountId, function(result, event){ ... }, {escape: true})。 还有一点很重要,就是安全问题。一旦你把一个Apex类设置为Visualforce页面的控制器,那这个类里面所有标记了@RemoteAction的方法,都会从页面上暴露出去,JavaScript都可以调用。所以,添加控制器的时候要谨慎,确保只开放必要的方法,别一不小心把不该暴露的也暴露了。 好,这就是这张幻灯片的核心内容。大家有什么问题吗?

关键词

Apex Salesforce Developer Guide