我是portlet的初学者,我不理解request.setAttribute和response.setRenderParameter之间的区别(对于一个动作)。两者都将属性保存到请求中,并允许在之后访问它。我特别想到processAction和动作方法之后的渲染之间的传输。
我知道使用setRenderParameter我们不能“存储”一个复杂的对象,但如果我只想传输一个我应该使用的字符串?
在哪种情况下,我们应该使用setRenderParameter
方法还是setAttribute
方法?
答案 0 :(得分:7)
嗯,一个人在请求上设置一个属性。另一个设置响应的参数。显然,它们是不同的对象。
如果您希望根据您的操作调用不同的渲染方法,则可以使用response.setRenderParameter。例如,假设您的操作方法发送电子邮件,并且您希望向用户显示有关成功和失败的不同视图。在这种情况下,您可以在ActionMapping中执行类似的操作
if(sentOK){
response.setRenderParameter("result", "success");
}else{
response.setRenderParameter("result", "fail");
}
然后有两个RenderMapping方法:
@RenderMapping(params = "result=success")
public String success(){
@RenderMapping(params = "result=fail")
public String fail(){