我是Portlet的初学者,我不了解request.setAttribute和response.setRenderParameter(用于操作)之间的区别。两者都将属性保存到请求中,并允许之后访问它。我专门考虑一下processAction之后的processAction和render之间的传输。

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

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

最佳答案

好吧,可以在请求上设置一个属性。另一个在响应上设置参数。显然,它们是不同的对象。

如果您希望根据自己的操作调用不同的渲染方法,则可以使用response.setRenderParameter。例如,假设您的操作方法发送了一封电子邮件,并且您想向用户显示关于成功和失败的不同 View 。在这种情况下,您可以在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(){

10-08 13:42