2016-07-11 53 views
1

我是Liferay開發的新手,我有一個非常簡單的問題。從Liferay Portal調用jsp頁面

我有一個顯示文本消息的portlet示例,我需要在Liferay Portal中顯示。我怎樣才能做到這一點 ?在JSP代碼如下:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<%@ page import="javax.portlet.PortletPreferences" %> 

<portlet:defineObjects /> 

<% 
    PortletPreferences prefs = renderRequest.getPreferences(); 
    String greeting = (String)prefs.getValue("greeting", "Hello! Welcome to our portal."); 
%> 

<p><%= greeting %></p> 

回答

1

編輯

我怎麼能寫在view.jsp的文件,而Java代碼相同的portlet?

必須覆蓋MVCPortlets doView方法來初始化屬性,讓我們考慮的屬性greeting。例如:

public class Greeting extends MVCPortlet { 

    @Override 
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException { 

     renderRequest.setAttribute("greeting", "Hello! Welcome to our portal."); 

     super.doView(renderRequest, renderResponse); 
    } 
} 

而在你的JSP文件,檢索使用EL ${greeting}greeting屬性。

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

<portlet:defineObjects /> 

<p>${greeting}</p> 

輸出繼電器:

Hello! Welcome to our portal. 
+0

謝謝您的回答,但我的意思是別的東西。我會盡力解釋更好。 我有java文件,我有view.jsp文件與java代碼在裏面。我如何在view.jsp文件中編寫沒有java代碼的同一個portlet? – German

+0

我編輯了答案。您將看到如何從jsp調用Java代碼。 –

+0

如果我粘貼此代碼,它不起作用。我真的不明白爲什麼,只是空的portlet沒有任何短信。 P.S.爲什麼我們必須重寫not render()方法,但doView()? 這段代碼看起來很簡單,我非常沮喪:/ – German