0

这两者之间有什么区别吗:这是从 ActionPhase 到 RenderPhase。

1

PortletURL manageUrl = response.createRenderURL();
manageUrl.setParameter("action", "search");

2

ActionResponse.setRenderParameter("action", "search");

何时使用其中一个

4

2 回答 2

0

第一个片段生成一个渲染 URL,您将在页面中使用它作为带有“action”参数的渲染阶段的直接链接。

第二段代码为当前请求添加了一个“action”渲染参数,所以在你的动作阶段执行之后,渲染阶段将可以访问这个新参数。例如,它可以用于将数据从您的操作阶段传递到您的渲染阶段,或者如果您有多个渲染方法(使用@RenderMapping 注释的几个方法),则可以选择正确的渲染方法。

于 2013-04-17T19:45:33.557 回答
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>  

案例二:

     **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"); 同时地。

于 2013-10-22T17:30:56.077 回答