Liferay portlet: redirect to an other jsp page from javascript

后端 未结 2 1782
猫巷女王i
猫巷女王i 2021-01-22 19:29

I want to redirect to an other jsp page in a liferay portlet from js. The idea that I found is using a renderurl. The best code that I found that can help me as a first step is

相关标签:
2条回答
  • 2021-01-22 20:02

    Liferay needs to know the target portlet for any request parameter that you add to an URL - otherwise it ignores any unknown parameter. The ID of the target portlet is either defined as p_p_id or it is a prefix of the parameter (in which case you can define parameters for more than one portlet in one URL).

    So in your case you will have to set renderUrl1.setPortletId('...your portlet id'); to let your portlet see mvcPath and param.

    In addition the mvcPath must be absolute (start with a /) and below the configured templatePath (defaults to /).

    0 讨论(0)
  • 2021-01-22 20:08

    Try this:

    In your JSP ->

    <portlet:renderURL var="myRenderURL">
      <portlet:param name="jspName" value="display.jsp" />
    </portlet:renderURL>
    
    <aui:a href="#" cssClass="myLink" label="Click me" />
    
    <aui:script>
      A.one('.myLink').on('click', function () {
        window.location.href = '${myRenderURL}';
      });
    </aui:script>
    

    Then in your java portlet class ->

    @Override
    public void doView(RenderRequest request, RenderResponse response) 
        throws IOException, PortletException {
    
      String jspName = ParamUtil.getString("jspName", "view.jsp");
      include("path/to/your/jsp/" + jspName, request, response);
    
    }
    

    One last note: Starting with Liferay 6.2, portlet urls created with javascript methods mentioned in the OP above will

    • not include authentication tokens (p_auth, p_p_auth)
    • not be converted to friendly urls by the portal.

    Also see the Liferay Documentation on this.

    0 讨论(0)
提交回复
热议问题