从 Liferay 门户调用 jsp 页面

Call jsp page from Liferay Portal

我是 Liferay 开发的新手,我有一个非常简单的问题。

我有一个显示文本消息的 portlet 示例,我需要在 Liferay 门户中显示。我怎样才能做到这一点 ? 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>

编辑

How can I write the same portlet without java code in view.jsp file?

您必须覆盖 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.