Primefaces

时间:2019-02-22
本文章向大家介绍Primefaces,主要包括Primefaces使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

参考:

Primefaces框架开发杂谈!

PrimeFaces:Java EE终极UI框架

Primefaces简介及使用

一、介绍

Primefaces是JSF众多框架之一,PrimeFaces是最受欢迎的Java EE UI库。

有组件式、拿来即用,熟悉之后可进行快速开发等优点。支持AJAX

PF有何优劣势?

优势:

1、组件式、拿来即用,熟悉之后可进行快速开发;

2、PF技术支持的也非常不错,有自己官方的BLOG和论坛;

3、官方有提供多种界面皮肤,可以省去大部分界面开发的时间;
4、轻量级,仅仅有一个JAR包,无任何其他JAR包依赖;
5、框架中已经集成了jQuery,无需再引入jQuery脚本而可以直接使用jQuery脚本

        <ui:remove>
			<br /> primefaces 框架中已经集成了jQuery,无需再引入jQuery脚本而可以直接使用jQuery
			<h:outputScript name="js/jquery-1.11.3.js">
			</h:outputScript>
		</ui:remove>

已经测试,确实不用另外添加jquery


6、与Spring可以非常好的结合;
7、有Mobile版本,可支持iPhone, Android, Palm, Blackberry, Windows Mobile等众多类型的手机。

劣势:

1、对于国内的大部分开发者来说没有中文文档,是其最大的劣势;
2、虽然官方有皮肤样式但都相对来说比较丑陋,还需自己进行定制;
3、完全不支持IE6,部分版本对IE7的兼容性也不是那么尽如人意,这对国内还有众多IE6的用户来说无遗是一个灾难。
 

 

二、下载安装

下载: 官网下载: https://www.primefaces.org/downloads.html

安装:

1)将下载的jar 包放到JSF项目的lib路径下

或者添加maven依赖

<dependency>
        	<groupId>org.primefaces</groupId>
        	<artifactId>primefaces</artifactId>
        	<version>6.1</version>
        </dependency>

添加maven的时候,修改了阿里的库:

<mirror>
      <id>alimaven</id>  
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	  <mirrorOf>central</mirrorOf>
    </mirror> 

2)在页面xhtml的<html>标签中添加primefaces的tag,如用p表示:

xmlns:p=http://primefaces.org/ui

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	
	xmlns:p="http://primefaces.org/ui"
   	xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
	
	>

 

3)   在html的body中可以直接使用primefaces p标签的已写好的UI组件了

<p:dataList value="#{memberController.memberList()}" var="_member" >
		<f:facet name="header">
			Member
		</f:facet>
		#{_member.id},#{_member.email}
	</p:dataList>

4)很简单的一个后台获取list

package org.jboss.tools.examples.controller;

import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.inject.Model;
import javax.enterprise.inject.Produces;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.jboss.tools.examples.model.Member;
import org.jboss.tools.examples.service.MemberRegistration;

// The @Model stereotype is a convenience mechanism to make this a request-scoped bean that has an
// EL name
// Read more about the @Model stereotype in this FAQ:
// http://www.cdi-spec.org/faq/#accordion6
@Model
public class MemberController {
    @Inject
    private EntityManager em;
    
    //写个查询list
    public List<Member> memberList(){
    	CriteriaBuilder criteriaBuilder  = em.getCriteriaBuilder();
		CriteriaQuery<Member> query = criteriaBuilder.createQuery(Member.class);	//createQuery的参数是Query返回值类型
		Root<Member> member = query.from(Member.class);								//参数是对应于order表的实体类,query.from类似于sql中的from语句,该方法的执行等价于sql中的from Member。
		//默认查询全部
		query.select(member);	//query.select(root)则等价于select *
		TypedQuery<Member> tq = em.createQuery(query);
		List<Member> list = tq.getResultList();
    	return list;
    }
}

@Model构造型是一种便利机制,可以使它成为一个具有的请求范围的bean
// EL名字
//阅读本常见问题解答中有关@Model构造型的更多信息:
// http://www.cdi-spec.org/faq/#accordion6

 

 

 

三、扩展

下表显示了Facelets支持的标签库。