RemoteAction不能使用ApexPages.currentPage()的问题

昨天给别人改一个salesforce页面,因为页面渲染文件太大了,所以需要改成一个去掉apex:xxx控件,全程由html改写的页面,然而功能还不能少。由于apex控件有各种好处,改起来还是麻烦了些,然后我在改了页面之后就遇到了如题的问题。

这个问题的起因是原来页面为了在js里调用一个controller的方法,使用了apex:actionFunction控件,为了又去掉apex控件,又能调用方法,我把后台调用的方法加上了@RemoteAction, 方法也相应的改成了static, 然后问题来了,在这个方法里,用到了```ApexPages.currentPage().getParameters().get('demo')```这样的方法。debug了一下,发现在ApexPages.currentPage()这一步其实就已经得到一个空值,所以就会导致报错。查阅了多番资料,终于发现是由于方法是static, 加载的前后顺序导致除了这个错,可是我确实要得到url传过来的参数,一时很苦恼。

在看了很多资料,多番尝试之后,终于解决了这个问题,在页面上获取,并通过js方法传递参数。最终通过在页面js里使用 ``` var demo = {!$CurrentPage.parameters.demo}; ``` 取到值。

你以为这就完了吗,大错特错,仔细试一下,如果url里面没有传递demo过来,页面会报错!因为这个值如果没有传,它就彻底什么都不返回,渲染的结果是  var demo = ; 赤果果的语法错误!!!不能忍,尝试了各种办法,终于发现了最简单的解决方案``` var demo = '{!$CurrentPage.parameters.demo}';``` 终于解决了这些问题。

这次改页面的过程,个人总结就是,遇到问题,翻阅各种文档,然后多番尝试,基本上都能解决。虽然这次改页面各种波折,但是感觉还是学到了东西。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,321评论 0 7
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,243评论 25 708
  • 通过类的实例调用的方法(实例方法),我们称这个方法绑定在实例上。 方法是类内部定义函数,该函数的第一个参数是sel...
    上发条的树阅读 589评论 0 0
  • 1.初二的班主任 她是一个普通的生物老师,她会和我们讲男性与女性在生理构造之间的区别。 她是一个贴心的妻子,丈夫被...
    AI信仰者阅读 359评论 3 5