2012-04-02 63 views
0

我使用Liferay的和我的portlet類是如下:是Portlet emty當我部署它

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> 

我depoly此portlet並將其放在頁面上,但它是空的,並且Liferay日誌文件中沒有錯誤消息。它有什麼問題?

回答

0

嘗試刪除包含方法並在doView方法中包含行。我假設你只有一個名爲view.jsp的頁面。同時仔細檢查portlet的portlet.xml,看看portlet-class是不是指向MVCPortlet,而是指向HospitalPortlet類。

1

只是刪除包括方法

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

不刪除include("view.jsp", renderRequest, renderResponse);

doView()

和部署你的代碼

0

Spring MVC中的portlet我面對這個問題,而且我做的是錯誤,我忘了更換線portlet.xml文件是

com.liferay.util.bridges.mvc.MVCPortlet 

我必須更換爲

org.springframework.web.portlet.DispatcherPortlet 

一旦我替換了這個錯誤r走了。

相關問題