Портлет пуст, когда я его внедряю - PullRequest
0 голосов
/ 02 апреля 2012

Я использую Liferay, и мой класс портлета выглядит следующим образом:

public class HospitalPortlet extends MVCPortlet {
private static Log _log = LogFactory.getLog(HospitalPortlet.class);
public void doLogin(ActionRequest actionRequest, 
        ActionResponse actionResponse)
            throws IOException, PortletException{
    actionRequest.setAttribute("test", "this is a test");
}
public void doView(RenderRequest renderRequest,
        RenderResponse renderResponse)
            throws IOException, PortletException{
    renderRequest.setAttribute("test", "this is a test");
    include("view.jsp", renderRequest, renderResponse);
}
public void include(String path,
        RenderRequest renderRequest, RenderResponse renderResponse)
            throws IOException, PortletException{
    PortletRequestDispatcher portletRequestDispatcher =
            getPortletContext().getRequestDispatcher(path);
    if (portletRequestDispatcher == null){
        _log.error(path + " is not a valid include");
    }
    else{
        portletRequestDispatcher.include(renderRequest, renderResponse);
    }
}

}

и мой viw.jsp выглядит следующим образом:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>

<portlet:defineObjects />

This is the <b>Hospital</b> portlet.

<%
    String testVar = (String)renderRequest.getAttribute("test");    
%>

<br />

<p><%= testVar %></p>

Я разворачиваю этот портлет и помещаю его на страницу, но он пуст и в файле журнала liferay нет сообщений об ошибках. Что с ним не так?

Ответы [ 3 ]

1 голос
/ 25 октября 2012

Просто удалите метод include

public void include(String path, RenderRequest renderRequest, RenderResponse renderResponse)

не удаляйте include("view.jsp", renderRequest, renderResponse);

в doView()

и разверните свой код

0 голосов
/ 23 апреля 2016

В весеннем портлете mvc я сталкиваюсь с этой проблемой, и ошибка, которую я сделал, я забыл заменить файл строки portlet.xml на

com.liferay.util.bridges.mvc.MVCPortlet

Я должен заменить на

org.springframework.web.portlet.DispatcherPortlet

Как только я заменил эту ошибку, ушел.

0 голосов
/ 03 апреля 2012

Попробуйте удалить метод include и включить строку в метод doView.Я предполагаю, что у вас есть только одна страница с именем view.jsp.Также дважды проверьте portlet.xml портлета и посмотрите, не указывает ли класс portlet на MVCPortlet, а на класс HospitalPortlet.

...