我是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(){