在liferay6.2下生成jsf portlets 并完成部署

第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 来完成部署。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员创业营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值