创建一个Portlet工程
使用Liferay的SDK创建一个简单的Portlet,此Portlet不包括业务逻辑、不包括数据库,只有简单的页面展现,用以说明Portlet的开发过程。
一、创建Portlet工程
1、打开Liferay IDE,File-->New-->Liferay Project
2、为Portlet工程取名为Study,点击完成。或者点击下一步,默认选择Liferay MVC。
补充说明:
Portlet:这个是一般做Liferay开发选择的项目,一般说Liferay插件工程,通常都是指的Portlet工程。他的结构和内容和普通的WEB工程区别不大。
Hook:Liferay的Hook是什么东西呢?这个单词中文可以翻译成钩子。是用于重写或覆盖Liferay的一些默认方法或页面。为开发提供了一种在不直修改Liferay核心源码的情况下修改Liferay核心功能的方法。
Ext:扩展工程的开发方法是Liferay早期版本推荐的开发方法,在6.x版本之后对ext开发模式逐渐不再推荐,主要使用Portlet的开发方法。扩展开发可以继承Liferay的Portal的大部分接口方法,而Portlet里面可以使用的接口方法均是Services包里面暴露的API。但是和Liferay的核心工程耦合太大,当Liferay的版本升级时对Ext工程的影响太大,基本需要重新修改。所以一般不推荐使用Ext模式。
Layout:布局模板,Liferay的布局是可以定制的,如一个页面中是两栏式还是三栏式,每个栏里面又有几行等等,可以使用此模式进行快速开发。
Theme:主题包。Liferay IDE提供的可以帮助开发人员、设计人员快速开发Liferay主题包的功能,通过此模式提供的向导工具等,为主题包的开发大大的提供了便利。
Portlet部署
Liferay的开发大量依赖Ant(也可以使用maven),在Liferay的开过程中,编译、代码生成、打包、部署等都是基于Ant完成的。
1、Liferay 的IDE在Liferay的portlet开发模式下,ant面板默认是可见的,如果找不到可以通过Window-->Show View-->Ant(如果没有可以在other里面找到)
2、在ant页板里面,点击Add-buildfiles将Build.xml文件添加进来。
3、点击Study-portlet前面的小三角,在出现的下拉菜单里面,双击deploy,等待Liferay完成部署操作。
如果在此时出现如下错误:
Task cannot continue because ECJ is not installed.
ECJ was automatically installed. Please rerun your task.
原因是ECJ包没有找到,ECJ是什么?ECJ, the Eclipse Compiler for Java, is an open source incremental compiler used by the Eclipse JDT. It is an option for Liferay builds and is in many cases faster than Javac or Jikes. The jar for ECJ is included in Liferay release 4.4.0 and later.http://www.liferay.com/community/wiki/-/wiki/Main/ECJ这是官方解释。大概意思是ECJ是一个编译优化包,可以提升比Javac和JIKES更好的编译速度。要想使编译通过,有两个两个方法:
方法一:禁用ECJ。在Liferay的SDK下面找到build.Administrator.properties,此处中间的Administrator名称不一定是这样的,具体体系名称是根据当前系统的用户名生成的。在里面添加如下内容
javac.compiler=modern
#javac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter
方法二:将ECJ的包添加到ant的路径里面。ecj.jar包可以在Liferay的工程的源码包\lib\development下面找到。将此包添加到ant的路径里面。Windows-->preferences-->Ant-->Runtime,在右边的Classpath-->Ant Home Entries(Default) -->Add External JARs,将ecj包添加进来。
4、启动Tomcat。此portlet工程会自动部署。
5、打开http://localhost:8080/,登录系统。点击左上角的添加-->更多-->示例,在这里面可以看到我们刚建立的study portlet,点击添加,可以将此portlet添加到页面上。
Portlet工程结构
一个Portlet工程的大概结构如下:
1、src:这里存储Java相关文件包,后面会看到还有一个services包。
2、web.xml:此web.xml和普通的web工程的web.xml文件一样。
3、build.xml,此文件为ant的构建文件,一般不需要修改继承自SDK。
4、Liferay-plugin-package.properties,此文件为包工程的元数据信息文件,一般开发不需要关注。
5、portlet.xml:portlet定义描述文件,这个文件是标准的portlet 2.0(JSR 268)规范的文件。在这里定义的信息为portlet的名称、初始化参数、模式类型、portlet的相关信息、权限等。在此文件里面我们可以看到view-template对应的的是/view.jsp,当我们在Liferay里面添加此portlet后,看到的页面内容就是view.jsp里面的内容。下面的security-rol-ref定义的是哪些角色拥有此portlet的权限。
6、Liferay-portlet.xml:此文件是liferay扩展的portlet的内容,portlet.xml文件里面是标准的Portlet内容,所有的Portal容器的portlet.xml文件描述、结构都是一样的。但liferay基于自身平台的需求,又添加了一个Liferay-portlet.xml来扩展portlet的信息。在这里可以看到角色映射,以及Liferay的一些个性化信息,后面有需要的时候详细说明。
7、liferay-display.xml:在上一个步骤里面我们在添加portlet的时候,看到study这个portlet是位于示例这个目录下面的,此文件就是定义相关的portlet是放置在哪个目录下面显示的。
说明:
在Liferay里面,portlet的名称一般不要重复,portlet.xml,liferay-portlet.xml,lifray-display.xml这三个文件之间的关联就是通过portlet 名称做标识进行关联。
创建一个Portlet工程的更多相关文章
- 创建一个Android工程
Creating an Android Project 原文演示了怎么通过Android Studio和命令行两种方式来创建一个Android工程. 原文链接:http://developer.and ...
- 使用idea创建一个maven工程
使用idea创建一个maven工程 一.创建maven工程 二.输入工程名 三.指定maven仓库 四.点击finish 五.修改工程结构(file->project structure) 六. ...
- Eclipse创建一个mybatis工程实现连接数据库查询
Eclipse上创建第一mybatis工程实现数据库查询 步骤: 1.创建一个java工程 2.创建lib文件夹,加入mybatis核心包.依赖包.数据驱动包.并为jar包添加路径 3.创建resou ...
- 利用Zynq Soc创建一个嵌入式工程
英文题目:Using the Zynq SoC Processing System,参考自ADI的ug1165文档. 利用Zynq Soc创建一个嵌入式工程,该工程总体上包括五个步骤: 步骤一.新建空 ...
- django学习笔记【001】django版本的确定&创建一个django工程
2.3 查看当前的django版本 python3. -m django --version 2.3.1 创建一个django工程 django-admin startproject mysite 在 ...
- 使用Idea第一次创建一个Mavne工程时没有src目录
在使用idea创建一个maven工程时没有src目录,可能出现的问题很多,我先把我自己的问题分享上来 因为没有src,可能是因为maven插件还没下载到本地仓库.maven插件的版本和jdk版本冲突或 ...
- UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类
转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...
- UE4编程之C++创建一个FPS工程(一)创建模式&角色&处理输入
转自:http://blog.csdn.net/u011707076/article/details/44180951 从今天开始,我们一起来学习一下,如何使用C++将一个不带有任何初学者内容的空模板 ...
- 使用Maven快速创建一个SpringMVC工程步骤
第一步:创建maven工程,加入SpringMVC的maven依赖: <dependency> <groupId>org.springframework</groupId ...
随机推荐
- 去掉mysql数据库字段中的个别字符
update 表名 set 列名 = REPLACE (mcategory,"要去掉的字符","") where 列名 like "%要去掉的字符% ...
- 20151130test->20160530
过了6个月了,有些长进么?哈 go go go 开源镜像 http://mirrors.163.com/
- cmd导入oracle数据
ctrl+r 输入imp
- ORACLE 远程导入导出数据库
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. ...
- 【leetcode】Count and Say (easy)
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
- IOS - UITableView分批显示数据 实现点击加载更多
Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...
- 使用xib需要记得的小问题
1. 图片 加载 图片上的label 不显示, 最后是因为xib 里位置动了 图片跑到最上层盖住了labe 2. 加载xib 有时候会崩 或加载不出来 先查看xib 是否有多余控件 3. 查看关联 ...
- Apache commons-codec笔记
- JAVA中读取xls数据方法介绍
用例编号(UI-0001) 用例名称({验证页面跳转|验证元素文本}-简要明确表述) 验证类型 是否执行 初始URL 初始元素xpath 目标元素xpath 目标元素属性 期望结果 UI-0001 验 ...
- Android -- getQuantityString无效
原文:http://www.xuebuyuan.com/1510993.html 原因:中文没有复数语法.