5

我是 Portlet 的初学者,我不明白 request.setAttribute 和 response.setRenderParameter (用于操作)之间的区别。两者都将属性保存到请求中并允许在之后访问它。我特别考虑了 processAction 和在 action 方法之后的渲染之间的传输。

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

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

4

1 回答 1

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(){
于 2013-06-12T17:51:44.657 回答