Portlet中的RenderParameter与RenderUrl

时间:2013-04-16 18:22:37

标签: jsr286 spring-portlet-mvc

这两者之间有什么区别: 这是w.r.t从ActionPhase到渲染阶段。

1

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

2

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

何时使用其中一个

2 个答案:

答案 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”);同时进行。