Portlet - setAttribute和setRenderParameter之间的差异

时间:2013-06-10 21:39:04

标签: portlet

我是portlet的初学者,我不理解request.setAttribute和response.setRenderParameter之间的区别(对于一个动作)。两者都将属性保存到请求中,并允许在之后访问它。我特别想到processAction和动作方法之后的渲染之间的传输。

我知道使用setRenderParameter我们不能“存储”一个复杂的对象,但如果我只想传输一个我应该使用的字符串?

在哪种情况下,我们应该使用setRenderParameter方法还是setAttribute方法?

1 个答案:

答案 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(){