在liferay6.2下生成jsf portlets 并完成部署
来源:互联网 发布:手机怎么进淘宝直通车 编辑:程序博客网 时间:2024/05/18 01:43
第1章 使用Liferay Faces开发JSF Portlets
你是否想开发遵循将J2EE规范的基于MVC 的portlets?你是否想使用附带富UI组件模式的portlets框架以让开发更容易?你是否编写过使用JSF的应用在portal?如果你的回答针对上述任意一问题是肯定的,那么你将非常幸运,因为liferay Faces提供上述所有的能力,甚至更多特性。
LiferayFaces是一个复合型的项目,提供了对JavaServer Faces标准的支持,在liferay Portal下,它包含下面的项目:
l Liferay Faces Bridge 让你不必编写portlet JAVA代码就可以把JSF 应用部署为portlets.
l Liferay Faces Alloy 让你可以应用AlloyUI组件,并保持与JSF开发相一致。
l Liferay Faces Portal 让你使用liferay的工具和UI组件在JSF portlets.
如果你是JSF的新手,你会想了解JSF的优势和劣势,并且它是如何借助css/javascript开发portlets.接下来我们给你关于JSF和liferay Faces的相关介绍,以帮助你判断什么样的框架更符合你的需要。
这里列出你需要使用JSF和liferay Faces的原因:
l JSF是J2EE在开发WEB应用的标准MVC设计模式,作为标准规范,一直被JCP维护和更新,并且Oracle reference implementation(Mojarra)做了经常性的发布。软件架构通常选择标准规范例如JSF,因为它们需要让J2EE的应用服务器支持它们的应用。
l JSF诞生在2003年,因此是成熟的技术,可以开发出更简洁更容易维护的WEB应用。
l JSF Portlet Bridges(类似liferay Faces Bridge)也被JCP列为标准规范,使JSF的WEB应用可以在不编写portlet java代码的情况下,就可以部署为portlets.
l 在liferay EE版本上支持JSF(通过liferayFaces)
l JSF是以个唯一的提供UI组件模型的框架,让开发富客户界面更加容易。
l JSF被设计为内建Ajax功能,提供自动更新浏览器程序,通过替换DOM里的元素。
l JSF设计为多扩展点,让非常多类型的整合成为可能。
l 有一组可用的JSF组件套件可用,其中包括liferayfaces alloy,ICEfaces,Primefaces,RichFaces,每个套件都增强了JSF,通过一个多样的UI组件和竞争力的技术例如Ajax推送。
l JSF作为服务器端开发富WEB客户界面的开发者是个很好的选择,让这部分开发者不再需要集中在如何更精通HTML/CSS/JavaScript技术。
l JSF提供的Facelets 模板引擎让生成可复用UI组件成为可能。
l JSF提供了与HTML5标签很好的整合能力。
l JSF提供了Faces Flows特性让开发向导驱动的应用程序更容易。
l JSF可以很好的与独立注入框架例如CDI,Spring有很好的整合能力,这让开发者可以更容易开发基于容器管理范围的beans.:@RequestScoped,@ViewScope,@SessionScoped,@FlowScoped.
l 因为JSF是有状态的技术,所以该框架封装了复杂的应用状态管理能力,让开发者不需要再编写状态管理的代码,把JSF用在无状态化的场景下也可以,只要让状态管理的特性禁用即可。
也有几个不使用JSF的原因,例如你是前端开发者,更多的会使用HTML/CSS/JAVASCTIPT,你会发现JSF灵活性和控制能力不够,所以AlloyUI也许对你更合适,或者遵守标准规范对你并不重要,或者你简单的倾向使用当前的开发框架开发portlets.
接下来的任务就是使用Liferay Faces开发portlets,我们讲介绍Liferay Faces包含的每个项目,例如liferay faces bridge,liferay faces alloy 和liferayfaces portal项目,我们从选择liferay faces版本开始讲到转换你的Portlet Faces到Liferay Faces.
1-1节开发JSF Portlets
Liferay支持开发与部署JSF portlets到liferay Portal,当然这需要借助LiferayFaces Bridge. Liferay Faces Bridge提供了部署JSF portlets到liferayportal的方法,事实上bridge支持在任意实现了JSR 286(Portlet2.0)容器里部署JSF WEB应用为portlets,例如liferay portal 5.2,6.0, 和6.1liferay.
在本部分我们将演示开发标准特性的JSF portlets,同时也会对附加的特性进行介绍,以让你更容易的维护JSF portlets.,同时也让JSF portlets功能更强大。
下面是我们将会涉及的主题:
l 生成JSF Portlet项目
l 设置你的JSF Portlet的portlet.xml文件
l 使用portlet偏好设置
l 使用ExternalContext访问Portlet Api
l 国际化JSF Portlets
l 结合jsfportlets使用IPC
l 在JSF portlets里使用CDI
l 使用LiferayFaces Bridge JSF组件标签
l 动态添加JSFportlets到Liferay Portal
l 使用FactoryWrappers扩展Liferay Faces Bridge
生成JSF portlet项目
为了让这个过程更容易,我们首选Liferay IDE,当然你可以在任何你喜欢的开发环境下生成JSF portlet项目。
下面是具体的步骤:
1, 去File->New->Liferay Plugin Project.
2, 在项目生成向导的第一个窗口,你需要命名你的项目,并设置它的开发与运行环境。
2.1 在项目名称上填写my-jsf-portlet和My JSF.
2.2 让Use defaultlocation 复选框处于选中状态
2.3 选择Ant(liferay-plugins-sdk)作为你的build 类型。
2.4 你配置的SDK和运行时应该已经被选择了,如果没有,参考前面的章节进行配置。
2.5 选择Portlet作为你的插件类型,并单击Next
3,在本窗口,你需要选择portlet框架为你的portlet和UI组件套件
3.1 选择JSF 2.X portlet框架
3.2 选择PrimeFacesUI 组件套件,并单击Finish.
下面让我们让portlet显示一个日历,用来替换portlets默认的helloworld文本输出,该日历应用了PrimeFaces calendar组件。
打开在docroot/views目录下的view.xhtml文件,使用下面的代码替换原来的文本输出内容:
<h:form>
<p:calendar></p:calendar>
</h:form>
整个文件类似
<?xml version="1.0"?>
<f:view
xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head />
<h:body>
<h:form>
<p:calendar mode="inline" />
</h:form>
</h:body>
</f:view>
部署JSF Portlets
你可以把插件war文件放到deploy目录,即可让portal做必要的修改完成自动部署。
另外你可以借助Liferay IDE来实现拖放部署,也可以在命令行界面输入ant deploy 来完成部署。
- 在liferay6.2下生成jsf portlets 并完成部署
- 在 JSF Portlets 中使用 CDI
- 使用JSF、Ajax和Seam开发Portlets(2/3)
- MyEclipse生成WAR包并在Tomcat下部署发布
- MyEclipse生成WAR包并在Tomcat下部署发布
- MyEclipse生成WAR包并在Tomcat下部署发布
- MyEclipse生成WAR包并在Tomcat下部署发布
- MyEclipse生成WAR包并在Tomcat下部署发布
- liferay6.1.1之使用jsf
- myeclipse使用经验---生成WAR包并在Tomcat下部署发布
- liferay6.2 linux环境ext删除与重部署
- 生成bundle,并部署到karaf下运行
- Maven下的生成War包并部署
- 在Websphere Portal 7 Client Side Aggregation下运行Spring MVC3 Portlets
- 应用JSF、Ajax和Seam开发Portlets(1/3)
- 使用JSF、Ajax和Seam开发Portlets(3/3)
- liferay6.2导出excel
- 在MyEclipse下创建并部署一个Web工程
- Android开发之系统层次结构及分析
- iosLearningDiary_viewDidUnload 和 viewWillUnload 被废弃之后的内存警告处理
- Linux下TimesTen主备搭建、重建cache group、重建备机操作[TimesTen基础]
- 常用的几个linux下的文本编辑命令cut、paste、sort、uniq
- android 浏览器插件开发 - 流程(2)
- 在liferay6.2下生成jsf portlets 并完成部署
- IOS绘图
- 改变文件或目录权限命令:chmod
- Android 软件盘 弹出和隐藏的处理
- MySQL 不支持 top n,改用 limit
- hdu 1421 搬寝室 (DP)
- C#中as是什么含义?is是什么含义?
- android 浏览器插件开发 - Log
- 验证TimesTen统计收集后SQL重新编译