当前位置: 首页 > 知识库问答 >
问题:

Portlet从Liviay留档

刁越
2023-03-14

您好,我尝试使用liferay文档中的do portlet。但是我的java类不工作。

MyGreetingPortlet

package com.liferay.samples;  
import java.io.IOException; 
import javax.portlet.ActionRequest; 
import javax.portlet.ActionResponse; 
import javax.portlet.PortletException; 
import javax.portlet.PortletPreferences; 
import com.liferay.util.bridges.mvc.MVCPortlet;  
public class MyGreetingPortlet extends MVCPortlet { @Override 
public void processAction( ActionRequest actionRequest, ActionResponse actionResponse) 
        throws IOException, PortletException { 
    PortletPreferences prefs = actionRequest.getPreferences(); 
    String greeting = actionRequest.getParameter("greeting");  
    if (greeting != null) { 
        prefs.setValue("greeting", greeting); 
        prefs.store();
        }  
    super.processAction(actionRequest, actionResponse); 
    } 
}

看法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>
<portlet:renderURL var="editGreetingURL"> <portlet:param name="jspPage" value="/edit.jsp" /> 
</portlet:renderURL> 
<p><a href="<%= editGreetingURL %>">Edit greeting</a></p> 

edit.jsp

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<%@ page import="com.liferay.portal.kernel.util.ParamUtil" %> 
<%@ page import="com.liferay.portal.kernel.util.Validator" %> 
<%@ page import="javax.portlet.PortletPreferences" %>  
<portlet:defineObjects />  
<% PortletPreferences prefs = renderRequest.getPreferences(); 
String greeting = (String)prefs.getValue( "greeting", "Hello! Welcome to our portal."); %>  
<portlet:actionURL var="editGreetingURL"> <portlet:param name="jspPage" value="/edit.jsp" /> 
</portlet:actionURL>  
<form action="<%= editGreetingURL %>" method="post"> 
<label><input type="text"><%= greeting %></label>
<input type="submit" name="submit" value="Submit">
</form>  
<portlet:renderURL var="viewGreetingURL"> 
<portlet:param name="jspPage" value="/view.jsp" /> 
</portlet:renderURL>  
<p><a href="<%= viewGreetingURL %>">&larr; Back</a></p>

部署后,jsp工作正常,但当我单击Submit按钮时,什么都没有。在这个例子中,我只改变了一件事:删除aui标记,但不要认为有什么改变,因为我已经尝试了几个不同的例子,没有人使用java类。哦,我使用MVC Portlet。

共有3个答案

庞书
2023-03-14

我想没必要打电话

super.processAction(actionRequest, actionResponse); 

删除它并重试,然后它可能会工作。

堵飞鸿
2023-03-14

文件portlet。xml还需要更改,以便它指向我们的新类

 <portlet>
    <portlet-name>my-greeting</portlet-name>
    <display-name>My Greeting</display-name>
    <portlet-class>com.liferay.samples.MyGreetingPortlet</portlet-
    class>
    <init-param>
    <name>view-jsp</name>
    <value>/view.jsp</value>
    </init-param>

在edit.jsp

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

在此之后添加以下代码

<liferay-ui:success key="success" message="Greeting saved successfully!" />

重新生成war文件,您将看到输出。不过,如果您面临这个问题,我将提供完整的代码

满增
2023-03-14

我认为portlet.xml中的portlet类没有指向您的自定义portlet类,仍然引用MVCPortlet。请将其更改为指向您的自定义portlet类

---更新---

在“我的本地”中检查您的代码后,发现您传递参数的方式不正确。您没有传递参数的名称。您应该传递如下所示的参数。

<input type="text" name="<portlet:namespace/>greeting"><%= greeting %></input>
 类似资料:
  • 我想问你一个问题。我使用Liferay 6.2。我有一个自定义portlet,它嵌入在我的自定义主题中 下面是Liferay portlet的一些设置。xml 在portlet控制器呈现方法中,我设置了portlet首选项(我想使我的portlet无边界) 但当我检查Liferay和我的自定义嵌入portlet边框时,会发现。但PORTLETPREFERENCE表有一行,下面是首选项,ID根据li

  • jQuery portlet 是一个 jQuery 插件,用来通过 JavaScript 实现 Portlet 编程,遵循 JSR-168 和 JSR-286 规范。

  • Portlet 是基于阿杜伊诺(Arduino)开发板设计且开源的,它能够实现对众多家用电器的远程控制。它可编程的特点让其成为了一款多功能便携插座。从定时关灯到咖啡保温,要实现理想的功能,会编程就行。Thorn 想要让他的厨房电器实现更多的功能,他觉得自己可以将所有控制功能整合到一个盒子当中。制作 Portlet 的过程并非一帆风顺,解决 110v 交流电转换成 5v 直流电的问题时 Thorn

  • JBoss Portlet Bridge 是对 JSR-301 和 JSR 329 草案实现,用以支持在 portlet 中使用 JSF 技术开发,以及增强对其他 Web 框架的支持,当前支持 JSF、Seam、RichFaces 等。

  • Portlet是企业系统中比较重要的一块内容,可以展示企业的各种信息(公告、提醒等),在业务系统例如有工作流的系统中更为重要。 发起这个开源项目的原因是因为现有的Portlet插件都太难用,而且和我们现有的系统样式风格不兼容,因为公司的项目前端都是基于jQuery以及jQuery UI 框架开发的,所以为了更好的保持风格统一才有了jQuery UI Portlet。 主要功能: 按照列的方式生成P

  • GateIn Portlet Container 是 GateIn Portal 下一代的 portlet 容器。提供 JSR-286 Portlet 2.0 规范的标准兼容实现。GateIn Portlet Container 的可重用性让那些高级用户不需要使用一个成熟的门户就可以在自己的应用中使用 portlet 管理服务。