这两者之间有什么区别: 这是w.r.t从ActionPhase到渲染阶段。
PortletURL manageUrl = response.createRenderURL();
manageUrl.setParameter("action", "search");
ActionResponse.setRenderParameter("action", "search");
何时使用其中一个
答案 0 :(得分:0)
第一个代码段生成一个渲染网址,您将在页面中将其用作带有“操作”参数的渲染阶段的直接链接。
第二段代码为当前请求添加“action”呈现参数,因此在执行操作阶段之后,呈现阶段将可以访问此新参数。例如,它可以用于将数据从您的操作阶段传递到渲染阶段,或者如果您有多个渲染方法(使用@RenderMapping注释的几个方法),则可以选择正确的渲染方法。
答案 1 :(得分:0)
案例1:
**Code on Portlet**
PortletURL manageUrl = response.createRenderURL();
manageUrl.setParameter("action", "search");
request.setAttribute("manageUrl",manageUrl);
**Code on Jsp(it can be any view layer)**
<a href="${manageUrl}">Click here </a>
案例2:
**It can be any custom process action**
public void processAction(..)
{
ActionResponse.setRenderParameter("action", "search");
}
**It can be any custom render method**
public void doView(..)
{
System.out.println("Action value :-"+action);
ActionResponse.setRenderParameter("action", "search");
}
第二个片段也有一个限制。你不能使用ActionResponse.setRenderParameter(“action”,“search”);和ActionResponse.sendRedirect(“/ some url”);同时进行。