从SpringMVC Liferay portlet调用jsp的问题

时间:2015-10-13 08:06:08

标签: java jsp spring-mvc liferay

我有一个SpringMVC portlet到Maven构建的项目中。 我不能让JSP呈现给另一个JSP。

我不确定这是因为我的JSP路径还是因为我对SpringMVC的误解。

我的jsp完整路径是: /src/main/webabb/WEB-INF/jsp/render/logs.jsp

我试着这样称呼它:

<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>

我试过

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" />

无论是什么字符串,我设置,当我点击按钮时,页面只调用主控制器,重定向到我的默认视图jsp。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

显然(如果我错了,请纠正我),我们需要调用控制器,它将重定向到JSP。 我设法以这种方式工作:

在我的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>

进入我的控制器:

@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";

    }

希望它有所帮助。