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支持的标签库。
- Rails 部署总结
- 简单易学的机器学习算法——受限玻尔兹曼机RBM
- 博客群发(2)--实现登陆
- 算法——递推算法
- 算法——贝叶斯
- 机器学习算法实现解析——liblbfgs之L-BFGS算法
- 机器学习算法实现解析——libFM之libFM的训练过程之Adaptive Regularization
- 虚拟化平台cloudstack(2)——安装(上)
- 机器学习算法实现解析——libFM之libFM的训练过程之SGD的方法
- 虚拟化平台cloudstack(3)——安装(下)
- 机器学习算法实现解析——libFM之libFM的训练过程概述
- 虚拟化平台cloudstack(4)——几个异常
- Golang语言 xml解析实例
- 机器学习算法实现解析——libFM之libFM的模型处理部分
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法