2015-10-13 2 views
0

У меня есть портлет SpringMVC в проект Maven. У меня не может быть JSP для рендеринга другому JSP.вопрос вызвать jsp из портлета SpringMVC Liferay

Я не уверен, что это из-за моего пути 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.

Thx заранее.

+0

Возможный дубликат [Liferay портлета Basic MVC Flow и View Selection] (http://stackoverflow.com/questions/15778745/liferay-portlet-basic-mvc-flow-and-view-selection) –

+0

Привет Тобиас, На самом деле это не дубликат этого сообщения, с которым вы связались. Сообщение, которое вы связали, описывает способ перехода с контроллера на jsp. В моем случае я пытаюсь перейти от jsp к другому jsp. –

+0

я нашел inportlet-приложение-context.xml: \t <боб ID = "viewResolver" класс = "org.springframework.web.servlet.view.InternalResourceViewResolver"> \t \t <имя = значение "CONTENTTYPE" свойство = "текст/HTML;. кодировка = UTF-8" /> \t \t <имя = свойство "" значение = "префикс/WEB-INF/JSP /" /> \t \t <свойство имя = "суффикс" значение = "JSP" /> \t \t <имя свойства = значение "viewClass" = "org.springframework.web.servlet.view.JstlView" /> \t Таким образом, мы могли бы ожидать, renderURL быть: <портлет: renderURL вара = "addGuestbookURL"> <портлет: пары имя = значения "mvcPath" = "визуализация/журналов" /> не повезли –

ответ

0

По-видимому (исправьте меня, если я ошибаюсь), нам нужно вызвать контроллер, и он будет перенаправлен на 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"; 

    } 

Надеется, что это помогает.

+0

Действительно, вам нужно вызвать renderMethod. Результат, если имя jsp, которое вы хотите отобразить (определяется ) – fabballe

Смежные вопросы