课程章节介绍
同学们,今天我们来讲一讲怎么让网站上的网址看起来更简洁、更好看,这个技术就叫做 URL 重写。比如说,你本来要访问一个又长又复杂的地址,如果能变成短小精悍、容易记的样子,用户体验就会好很多。在 Salesforce 里,想实现这个,就要用到一个叫 Site.UrlRewriter 的接口。
我们来一步步看怎么操作。首先,你要创建一个 Apex 类,让这个类去实现 Site.UrlRewriter 接口。这个类和它里面的方法,都必须声明成 global 的,也就是全局可见,这样 Salesforce 网站的底层才能找得到它们。
这个接口要求你必须实现两个方法,缺一不可,哪怕你暂时用不上,也得把方法体写出来,让它返回 null 就行。
第一个方法叫 mapRequestUrl。它的任务是处理“入站”的请求,也就是当用户在你的网站上输入一个友好的、简短的网址时,这个方法会把这个友好网址翻译成 Salesforce 实际上要展示的 Visualforce 页面。它需要返回一个 PageReference 对象,指向那个 Visualforce 页面;如果你对这个请求不想做任何重写,直接返回 null 就可以了。
第二个方法叫 generateUrlFor,它是负责“出站”的,也就是当你的网站代码要生成一个链接时,这个方法会把 Salesforce 内部原本那个长长的页面地址,重写成你对外显示的友好网址。它返回一个字符串,也就是你最终想让用户看到的短网址。同样,如果不需要重写,就返回 null。
这里要特别注意,这个重写机制只对和你的网站关联在一起的 Visualforce 页面有效,并不是对所有页面都起作用的。
总结一下,你只需要创建一个带 global 关键字的 Apex 类,实现上面说的两个方法,把该映射的网址逻辑写进去,然后把类配置到你的 Salesforce 站点设置里,就能轻松拥有漂亮的网站 URL 了。是不是很简单?快去动手试一下吧!
关键词
Apex
Salesforce
Developer Guide