portlet编写入门

portlet编写入门生成下面的两个文件 view jsp 显示欢迎信息 并且提供编辑页面的链接 edit jsp 显示有一个文本框的表单 允许欢迎信息可以被修改 并且包括一个回退到 view jsp 的超级链接 nbsp MVCPortlet 类处理展示我们的 JSPs 因此在本 DEMO 中 我们不需要生成一个单独的 JAVA 类 nbsp 首先我们不希望在同样的页面上出现多个欢迎信息 因此让我们的 elearn007gre

生成下面的两个文件:

view.jsp:显示欢迎信息,并且提供编辑页面的链接。

edit.jsp:显示有一个文本框的表单,允许欢迎信息可以被修改,并且包括一个回退到view.jsp的超级链接。

 

MVCPortlet类处理展示我们的JSPs,因此在本DEMO中,我们不需要生成一个单独的JAVA类。

 

首先我们不希望在同样的页面上出现多个欢迎信息,因此让我们的elearn007greeting 为非实例化。因此只需要编辑liferay-portlet.xml文件即可,如果你的配置文件里有instanceable属性,只需要把其设置为false即可,如果没有,请添加它,例如下面的例子:

 
   
   
     my-greeting 
    
   
     /icon.png 
    
   
     false 
    
   
     /css/main.css 
    
   
     /js/main.js 
    
   
     my-greeting-portlet 
    
  

现在我们将生成我们的jsp模板,从编辑view.jsp文件开始,该文件在你的docroot目录下,用下面的内容替换它:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ page import="javax.portlet.PortletPreferences" %> 
   <% PortletPreferences prefs = renderRequest.getPreferences(); String greeting = (String)prefs.getValue( "greeting", "Hello! Welcome to our portal."); %> 

<%= greeting %>

Edit greeting

edit.jsp

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %> <%@ page import="javax.portlet.PortletPreferences" %> 
    <% PortletPreferences prefs = renderRequest.getPreferences(); String greeting = renderRequest.getParameter("greeting"); if (greeting != null) { prefs.setValue("greeting", greeting); prefs.store(); %> 

Greeting saved successfully!

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

← Back

注意,首先在超链接生成部分,使用了 标签,该标签在http://java.sun.com/portlet_2_0标签库中进行了定义。该链接只有一个mvcPath参数,通常被MVCPortlet用来确定调用哪个jsp文件来重绘request 请求。一定注意,要用标签库来生成链接,因为portlet并没有拥有整个
WEB
页面,相反仅仅是一部分页面。

 

第二,注意edit.jsp文件的表单有个aui前缀,表示它属于AlloyUI标签库。

该标签库简化了代码量,提高了开发效率,但是你仍然可以使用HTML或是其他标签库这以你自己的选择为优先。

 

另外的jsp标签库你也会注意到 该标签用来在JSP里插入一组隐含的变量,这些变量对开发很重要,包括:renderRequest,portletConfig,portletPreferences,等等,注意JSR-286方案定义了四个生命周期方法:processAction,processEvent,render,和serveResource.

这些变量仅仅可以用在JSPportlet特定生命周期阶段,下面列表对JSP可用的对象:

l RenderRequest-代表被发送到portlet的请求,该对象仅仅在render请求阶段可用。

l ResourceRequest-代表资源,在JSP处在资源服务阶段可用。

l ActionRequest-代表请求对象,该对象发送到处理一个action的portlet上,该对象在行动处理阶段可用。

l EventRequest-事件请求对象

l ResourceResponse-在资源服务阶段可用,代表资源回应对象,帮助portlet来绘制资源。

l EventResponse

l PortletConfig-代表配置对象

l PortletSession-

l Map

portletSessionScope:提供一个映射,类似调用PortletSession.getAttributeMa()

l PortletPreferences-表示portlet的偏好设置

l Map

portletPreferencesValue:提供一个映射,类似PortletPreferences.getMap()的调用,如果没有设置项,该映射则为空。







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208827.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:41
下一篇 2026年3月19日 上午10:41


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号