A.D.
A.D.

Reputation: 1116

issue to call a jsp from a SpringMVC Liferay portlet

I have a SpringMVC portlet into a Maven built project. I can't have a JSP to render to another JSP.

I am not sure if it is because of my JSP path or because of something I misundertood with SpringMVC.

My jsp full path is : /src/main/webabb/WEB-INF/jsp/render/logs.jsp

I try to call it this way :

<aui:button-row cssClass="...">
    <portlet:renderURL var="myURL">
        <portlet:param name="mvcPath"
            value="render/logs.jsp" />
    </portlet:renderURL>

    <aui:button onClick="<%=myURL.toString()%>"
        value="my button" />
</aui:button-row>

I tried with

value="/webabb/WEB-INF/jsp/render/logs.jsp" />
value="webabb/WEB-INF/jsp/render/logs.jsp" />
value="/WEB-INF/jsp/render/logs.jsp" />
value="WEB-INF/jsp/render/logs.jsp" />
value="/jsp/render/logs.jsp" />
value="jsp/render/logs.jsp" />
value="/jsp/render/logs.jsp" />
value="jsp/render/logs.jsp" />
value="/render/logs.jsp" />
value="render/logs.jsp" />

Whatever string, I set, when I hit the button, the page just calls the main controller which redirects to my default view jsp.

Thx in advance.

Upvotes: 0

Views: 979

Answers (1)

A.D.
A.D.

Reputation: 1116

Apparently (correct me if I m wrong), we need to call the controller and it will redirect to the JSP. I managed to have it work this way:

In my JSP:

<%-- URL declarations --%>
   <portlet:renderURL var="logsURL">
        <portlet:param name="action"
            value="viewLogs" />
    </portlet:renderURL>
        <portlet:renderURL var="failURL">
        <portlet:param name="action"
            value="fail" />
    </portlet:renderURL>

<%-- buttons--%>
<aui:button-row cssClass="guestbook-buttons">

    <aui:button onClick="<%=logsURL.toString()%>" value="test MVC logs" />
    <aui:button onClick="<%=failURL.toString()%>" value="test MVC fail" />
</aui:button-row>

Into my controller:

@RenderMapping(params = "action=fail")
    public String fail() {
        LOG.info("\n#############Calling fail###########");
        return "<my_dir>/fail";

    }

@RenderMapping(params = "action=viewLogs")
    public String logs() {
        LOG.info("\n#############Calling logs###########");
        return "<my_dir>/logs";

    }

Hope it helps.

Upvotes: 1

Related Questions