文档章节

Primefaces UI使用小结

YuanyuanL
 YuanyuanL
发布于 2016/06/23 17:04
字数 1340
阅读 1.2K
收藏 0

3 月,跳不动了?>>>

Primefaces UI使用小结

28 Jun 2013/in 开放平台开发网站设计和开发 /by Hima

相较于Struts、SpringMVC等MVC框架,在国内的企业应用中JSF的使用确很少,或许是因为资料很少又或许是我们对它的认知不够,但有一点不可否认,JSF是被纳入Java EE 5规范的,而其它的却没有。之前使用JSF做过几个项目,但这是第一次使用Primefaces UI(它是基于JSF Mojarra实现的一套很强大的UI,有社区版和商业版),因为在使用过程中碰到很多“坎”,所以想写篇博客将碰到的问题总结下,也希望能帮助到想使用或正在使用Primefaces UI的人。

        Primefaces UI在百度上基本搜不到有价值的信息,在整个解决问题的过程中Google(记着要切换到英文去搜哦)帮了很大的忙,它在国内用的人就更少了。但回过头去看,我真的很愿意向大家推荐这款UI,超级赞!我目前使用的版本是Primefaces 3.5和JSF Mojarra-2.1.17,废话少说进入正题。

一、ManagedBean的Scoped

        1、RequestScoped

        2、ViewScoped

        3、SessionScoped

        4、ApplicationScoped

        Request、Session、Application大家都比较熟悉,就不多说了,ViewScoped顾名思义视图有效,或者说当前页有效,因为Servlet规范里并没有View这个概念,所以它是JSF延伸出的一个概念,个人理解是为Ajax准备的,大家一定要记住它哦,后续它可发挥了很大的作用。

二、Primefaces

       1、template的使用

       在现在Web开发中,特别是Ajax出现后,framesetframeiframe已经不是特别推荐使用了(当然也可以使用),牛人可以用DIV构建出任何想要的布局,像我们这些平民懂的分享牛人的成果就OK了,在Primefaces里我们可以用p:layout布局,并做成template,后面的每个页面只要继承这个template,就可以直接享用,如下图

        2、ViewScoped的使用

        这个很重要,在项目开始时,因为SessionScoped的生命周期太长了不想用,所以大部分的ManagedBean都是用的RequestScoped,问题是一个接一个,如p:commandButton和p:commandLink的action和actionListener莫名其妙的不可进入,Ajax的使用也有时可以有时不可以,Scoped换成Session就一切都OK了,发现跟Bean的生命周期有关系,最后调试完,发现用ViewScoped最合适,生命周期比Request长比Session短,同时又能解决上述问题,因为Primefaces UI里大量用到ajax通信,这种场景最适合用ViewScoped。

        3、form的使用

        在使用中一定要避免form嵌套form的情况,它会出现很多不可以预知的情况,如提交附件会出现问题,但并列form可以放心的使用

        4、tree的使用

        如上图的Left中可以放置一个树形菜单,使用过的人可能会和我碰到一样的问题,那就是当我打开一个新页面时,树形菜单不能保持我打开页面之前的状态,解决方法:负责树形菜单Node节点的Bean的Scoped要申明成SessionScoped,并在tree标签上加属性dynamic=”true”,如<p:tree value=”#{menuBean.root}” var=”doc” dynamic=”true”>

        5、confirmDialog的使用

        如果在使用confirmDialog时发现,弹出框被遮罩层给挡住了不可使用,怎么办?解决方法:在confirmDialog标签加属性appendToBody=”true”,如<p:confirmDialog widgetVar=”startConfirm” appendToBody=”true” message=”Are you sure about starting the project?” header=”Start project” severity=”alert”>

        6、dialog的使用

        不得不提的一个组件,超级好用,我的应用里大量用到了它,它用起来让你的Web应用就像是一个Client应用,交互性和用户体验非常的好。你可以将dialog当作一个提示框用,也可以在dialog里做一个复杂的表单,你可以选择遮罩也可以不使用,如果要使用遮罩只需加上属性modal=”true”

        7、panelpanelGridoutputPanelaccordionPaneltabView等的使用

        他们都是布局展现相关的,用好来,效果非常的好,当然还有其它的。

        8、process和update属性的使用

        前面说了Primefaces大量用到了Ajax,那就不得不提process和update,他们俩刚好相反,process指出要异步提交哪一部分的内容,update指出要异步更新哪一部分的内容,经常在一起配合使用。功能非常的强大,如果有兴以后可以再详细说说。

        9、fileUpload的使用

        在使用前要在Web.xml中加入如下部分:

      <filter>

            <filter-name>PrimeFaces FileUpload Filter</filter-name>

            <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>

      </filter>

      <filter-mapping>

            <filter-name>PrimeFaces FileUpload Filter</filter-name>

            <servlet-name>Faces Servlet</servlet-name>

      </filter-mapping>

        使用p:fileUpload的form必须加上属性enctype=”multipart/form-data”,而且它不支持Ajax异步提交,所以对应的command要加上属性ajax=”false”,如:

      <h:form id=”form-delivery-file” enctype=”multipart/form-data”>

           <p:panelGrid columns=”2″>

               <p:outputLabel value=”Delivery File: ” />

               <p:fileUpload id=”deliveryFile” value=”#{projectBean.deliveryFileFromUi}” mode=”simple” storage=”file” />

           </p:panelGrid>

           <p:commandButton value=”Submit” ajax=”false” style=”margin:0″ actionListener=”#{projectBean.deliveryFile}” />

      </h:form>

        由于时间问题,这次先写到这,还有很多好用的组件,及在深入使用过程中碰到的问题和解决方法,后续再道来。想了解的朋友可以先到Primefaces的官方网站一睹为快:http://www.primefaces.org/showcase/ui/home.jsf

本文转载自:http://www.ccjk.com/page/86/?casestudy-category=clients&term=agriculture

YuanyuanL

YuanyuanL

粉丝 154
博文 334
码字总数 194722
作品 0
济南
高级程序员
私信 提问
加载中

评论(0)

PrimeFaces 3.0 正式版发布

PrimeFaces 终于迎来了 3.0 正式版本的发布,该版本在 RC2 的基础上有 21 个增强,详情请看 changelog PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。 主要由三个模块组成: ...

红薯
2012/01/04
998
0
PrimeFaces 3.0.M4 发布

PrimeFaces 发布了 3.0 的第四个里程碑版本,PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。 主要由三个模块组成: UI Components:PrimeFaces UI模块提供了拥有Rich Web用户...

红薯
2011/11/01
427
0
JSF框架 PrimeFaces 3.0 M1 发布

PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。 主要由三个模块组成: UI Components:PrimeFaces UI模块提供了拥有Rich Web用户体验的各种JSF组件。PrimeFaces使用Yahoo UI库...

红薯
2011/04/12
1K
1
PrimeFaces 3.2 Final 发布

在 RC 版发布一周后,PrimeFaces 3.2 Final 发布了,该版本主要是在 RC 的基础上的小 bug 修复,完整记录请看 changelog 功能描述请看 3.2.RC1 announcement 下载地址:downloads section. ...

红薯
2012/03/13
778
1
JSF框架 PrimeFaces 3.0 M2 发布

PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。 3.0M2 主要改进包括(完整内容): Reimplementation of component event callbacks (*Listener, *Update) as ajax behaviors...

红薯
2011/07/08
729
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 和网友的第一次开房经历

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Ljósið》- Ólafur Arnalds 手机党少年们想听歌,请使劲儿戳(这里) @xiaos...

小小编辑
15分钟前
8
0
程序员职业生涯指引

程序员应该尽早规划自己的职业生涯 为什么写 众所周知 IT 这一行到了一定的年龄、大部分人都或多或少有危机感,特别是今年全国乃至全球发生的疫情、导致整体经济受到很大的影响、这次的疫情影...

科比可比克
29分钟前
3
0
JVM调优实战分析

一、查看服务器项目JVM参数以及参数分析 1、jps 命令 : 列出系统中所有的 Java 应用程序以及PID 如下图所示,26647就是我部署在服务器的一个小项目的 PID 2、jmap命令:查看堆的使用情况 如...

IT-Mamba
今天
14
0
IDEA Tomcat 日志乱码解决汇总

IDEA Tomcat 日志乱码解决汇总 第三种没解决,第二种配置后解决了 https://blog.csdn.net/sinat_32404247/article/details/90287700...

三三的宁
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部