刚开始接触salesforce开发没多久,特写此博客和大家一起共同学习,如有错误或者可以改进的地方,欢迎留言~
前两天在做开发的时候发现了一个问题,当在点击自定义的save按钮保存成功之后,跳转回当前页面,保存成功的信息却没带回来,撸主找了好久,发现是如下原因:
1.当我们点击save按钮之后需要跳转回当前页面,但是跳转之后的页面已经不是原理的页面了,是经过刷新一次,重新加载了数据库中的内容的新页面。
2.发现罪魁祸首是使用了 prf.setRedirect(true);
相当于重新走了一遍服务器,所以我们的ApexPages.Message(ApexPages.Severity.CONFIRM, ‘保存成功!’)就没有带过来,消失啦。
那到底肿么办呢???
撸主想了个办法,在页面跳转的时候把message放到页面链接里面,然后刷新页面的时候再取出来不就行啦么!!!我好聪明!!!
如下是代码sample:
save方法:
PageReference prf = new PageReference('/apex/ACC_AddQuoteLineItem?quoteId='+quoteId);
prf.getParameters().put('SucMessage',Label.ACC_Save_Successfully);
prf.setRedirect(true);
return prf;
再次加载页面调用的构造方法:
if(ApexPages.CurrentPage().GetParameters().Get('SucMessage') != null){
String SucMessage = String.valueOf(ApexPages.CurrentPage().GetParameters().Get('SucMessage'));
ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM, SucMessage));
}