文档章节

Liferay 6.1开发学习(三):Portlet简述【转】

攻城狮不是猫
 攻城狮不是猫
发布于 2015/07/01 09:04
字数 1390
阅读 48
收藏 0

一、Portlet是什么?

Portlet是基于javaweb组件,由portlet容器管理,并由容器处理请求,生产动态内容。Portals使用portlets作为可插拔用户接口组件,提供信息系统的表示层。作为利用servlets进行web应用编程的下一步,portlets实现了web应用的模块化和用户中心化。 portlet规范,即jsrJava Standardization Request 168/268,是为了实现portalportlet的互操作。它定义了portletportlet容器之间的和约,让portlet实现个性化、表示和安全的api集。规范还定义了怎样在portlets应用中打包portlets。(引自百度百科:http://baike.baidu.com/view/58961.htm

Liferay是portlet规范的实现,对于portlet规范实现的主流产品还有IBMOracle等的Portal产品,主流产品的详细可以参看:http://www.huqiwen.com/2012/06/11/what-is-liferay/ 此篇文章中关于Liferay市场地位处的图片。很以很多时候我们将Liferay称为一个Portal容器,也就是一个提供Portlet运行的环境。

二、创建一个Portlet

1、基于上一节的Study这个portlet工程的基础。点击Liferay IDE上的liferay工具栏,有三个按钮,点击中间按钮,New Liferay Portlet。如下图,点击下一步。

Portlet plugin project:这里选择要创建的portlet属于哪个插件工程。

Source folder:类的放置位置,一般默认。

Portlet Class:要创建的Portlet的控制类的名称,可以将此类看作Struts中的Action类。

Java package:包名。

Superclass:选择要继承哪个类。一般默认,也就是MVCPortlet。下面这几个类的关系如下:MVCPortletLiferayPortlet的子类,LiferayPortletGenericPortlet的子类。在MVCPortlet中封装了一些方便开发的方法,所以一般使用MVCPortlet,如果有特殊需求可以使用他们的父类。

2、在此步骤看到的是Portlet的相关信息,如模式,JSP位置等,此步骤是portlet.xml文件的可视化编辑,此步骤的所有选项都可以通过编辑portlet.xml完成。点击下一步。

Porltet Info:这里显示的是Porltet的名称,显示名称,标题等。一般默认,不需要修改。

Portlet Modes:这里是portlet的模式,ViewEditHelp这三种模式,是portlet规范里面定义的。

Liferay Portlet Modes:看名知义,Liferay Portlet模式。一般默认即可。Portlet默认的三种模式,Liferay认为不能满足实际的需求,所以又新增了这几种模式。如果选择多个模式,就可以在portlet的设置里面看到,可以通过设置进行切换,方便进行一些特殊需求,如:config可以用来开发可配置Porltet,管理员可以为指定的Portlet定制相关的参数等。

JSP folder:JSP的存放位置,一般默认的命名是html/porltet名称,一般默认即可。html是相对于docroot的,完整路径是docroot/html/demo/view.jsp

Create resource bundle file:绑定资源文件,主要是国际化。如果想要porltet的名称是中文的,测必须使用资源文件,liferay推荐工程中的所有文字描述类的内容都使用资源文件来定义,这样方便国际化,也能避免出现一些可能的乱码问题。这里先不选,后面详讲国际化。

3、此步骤是Liferay-portlet.xmlliferay-display.xml的可视化编辑。点击完成即可。

Icon:此portlet的图标。

Allow mutiple instaces:是否允许在同一个页面中有多个porltet的实例,默认为否。

CSS:当前porltet的自定义CSS。一般默认。

JavaScript:当前portlet自定义JS。一般默认。

CSS classname:当前portlet的命名空间,防止CSS和其他porltet冲突。

Category:当前的portlet,显示在哪个分类下面,这里是Liferay-display.xml文件的可视化编辑。

三、MVCPortlet的简单使用

可以看到在工程的com.huqiwen.study包下面生成了一个Demojava文件,如果只是让portlet显示/html/demo/view.jsp里面的内容,则不需要在Demo.java文件里面添加内容。如果需要让view.jsp后从台初始化一些信息,则需要重写doView文法。view模式显示时调用doView方法,edite模式显示时调用doEdite方法,config模式显示时调用doConfig方法,依此类推。

在此大部分情况下可以将renderRequest当然HttpServletRequest使用。如果要转换可以通过PortalUtil.getHttpServletResponse(portletResponse)来进行转换。

可以使用renderRequest.setAttribute(arg0, arg1)方法,在前台页面通过JSTL等进行取值。

这里不详述,和普通的WEB程序基本一样。

四、其他

在二里面创建的内容都可以通过修改portlet.xmlliferay-portlet.xmlliferay-display.xml等来进行修改调整。创建向导包含的只是一些最通用的内容,一些高级的参数还需要通过修改porltet.xmlliferay-portlet.xml来完成。

通过向导默认 porltetview展现的 JSP命名为 view.jsp。此名称可以在 docroot下面修改成相应的内容,实际开发中建议命名中和业务相关的,方便后期查找识别,如用户的可以命名成 userView等,修改名称的同时需要修改 Porltet.xml里面 init-param对应的名称,否则会出现找不到页面的情况。

© 著作权归作者所有

攻城狮不是猫
粉丝 5
博文 57
码字总数 86313
作品 0
杭州
程序员
私信 提问
Liferay portal(三)新建Portlet

新建Liferay工程的时候会发现可以选择:Portlet模式,Hook模式,Ext模式,Theme模式,Layout模式。分别作用:1.开发自定义的页面 2.开发核心功能 3.开发扩展功能 4.开发主题功能 5.开发布局功...

扬州炒饭
2013/04/28
354
0
【转】Liferay使用心得

Liferay是一个出色的Java开源Portal产品,其中整合了很多当今流行的开源框架,也被不少人使用在实际项目中。最近刚结束了一个基于Liferay Portal的项目,总结下使用中的一些心得,希望对正在...

mj4738
2012/03/28
1K
0
liferay整理(留着备用)

Liferay 6.1开发学习(二十):Dynamic Query高级查询 在上一篇的博客《Liferay 6.1开发学习(十九):Liferay ServiceBuilder之自定义查询》之中介绍了一部分简单的Dynamic Query方法,可以...

IT小香猪
2014/07/17
346
5
Liferay开发学习Part3:5种开发模式

Liferay共有5种开发模式: portlet(portlet插件):其结构和内容和普通的WEB工程区别不大 portlet-ext(portlet扩展插件):不推荐 layout(布局):可定制布局 theme(主题):主题包,通过此模式提...

派卡琪安
2013/01/25
154
0
Liferay6.1学习笔记(三)--Autodeploy自定义的portlet

注: 由于官方的很多主题不支持6.2版本,所以现在使用的是6.1.2版本。 eclipse中新建一个portlet project后,在project中新建自定义的portlet。 打开servers窗口,将portlet项目deploy到tom...

Michaelyn
2014/01/09
451
0

没有更多内容

加载失败,请刷新页面

加载更多

02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
9
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
8
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
9
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
7
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部