【问题标题】:Call jsp page from Liferay Portal从 Liferay 门户调用 jsp 页面
【发布时间】:2016-07-13 03:30:24
【问题描述】:

我是 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>

【问题讨论】:

    标签: jsp liferay liferay-6


    【解决方案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.
    

    【讨论】:

    • 感谢您的回答,但我的意思是别的。我会尽力解释得更好。我有 java 文件,并且我有 view.jsp 文件,其中包含 java 代码。如何在 view.jsp 文件中编写没有 java 代码的相同 portlet?
    • 我编辑了答案。您将看到如何从 jsp 调用 Java 代码。
    • 如果我粘贴此代码它不起作用。我真的不明白为什么,只是空的 portlet 没有任何文本消息。附言为什么我们必须覆盖的不是 render() 方法而是 doView() ?这段代码似乎很简单,我很沮丧:/
    • 确保portlet.xml文件中配置的默认视图是你写的jsp。 doView是 portlet 被初始化的地方。
    • 我有这一行:&lt;value&gt;/view.jsp&lt;/value&gt;,我的 .jsp 文件也被命名为 view.jsp。我想应该没有问题吧?
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2012-01-30
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多