JSF PrimeFaces 教程

2023-11-17

欢迎来到 JSF Primefaces 教程。JavaServer Faces是当今用于实现 Java Web 应用程序用户界面的领先框架之一。 JSF 已经组件化了 Web 应用程序,特别是与界面相关的部分,因为 JSF 中的所有单一视图都是使用服务器端组件树构建的,在呈现到浏览器中时解码为 HTML。

JSF Primefaces 教程

The process of rendering the view in JSF does pass through what known as JSF lifecycle. This tutorial isn’t intended for providing you a detailed discussion of how lifecycle works or how could we deal with. It’s just a notification about what you should know about the JSF framework and how get JSF view ready for rendering. JSF Primefaces Tutorial, Primefaces Tutorial, Primefaces, Primefaces example JSF has two major implementations till the time in which the article written, oracle implementation Mojarra and Apache MyFaces implementation. Several JSF libraries has been coming into existence, Richfaces, IceFaces, Primefaces, MyFaces, etc and one of the most lead library that used intensively and has an excellent reputation is Primefaces. Primefaces cellabrate before months ago by releasing the Primefaces 5 which will consider the subject of this tutorial and next coming tutorials. For being able of using the primefaces 5, you must install and configure it into your project. Either you are going to use a simple text editor or an enterprise development environment, by ending of this tutorial you will be ready for discovering the all Primefaces components.

JSF 2 中的新增功能

众所周知,JavaServer Faces 是一个用于开发丰富的用户界面网页的框架。 JSF 已在多个 Java 社区请求 JSR 中引入,其中最终版本JSF 2于 2009 年 7 月发布,其中包含一组增强功能和新功能。 JSF 2 产生了一系列后果,最后一个是JSF 2.2于 2013 年 5 月发布。与 JSF 1.x 不同,JSF 2.x 提供了许多功能,例如使用注释来声明 JSF 托管 bean、转换器、验证器、作用域等。这不是故事的全部,JSF 2提供了新的范围,如查看范围、自定义范围、流程范围和对话范围等等。另外,我们不能忘记为 JSF 2 添加的最令人惊奇的功能,它是 Ajax 概念。在 JSF 2 中,Ajax 本质上内置于 JSF 框架中。因此,任何 JSF 组件都可以通过简单地添加 Ajax 内容来实现 ajaxified。导航规则也发生了变化并且变得更加容易。接下来的教程将详细介绍为 JSF 2 添加的功能,而在本教程中,您将创建简单的 JSF 应用程序以及如何使用 Primefaces 标签来实现某些业务场景的基本示例。

完成教程所使用的工具

为了开始发现本教程,您必须使用以下开发工具。

  1. Tomcat 7
  2. Eclipse集成开发环境
  3. Maven 3
  4. JSF 2 / Primefaces 5

It’s obvious that we’ve used the Tomcat 7 for deploying the application and Eclipse IDE for developing the required components where the Maven used as building tool and for managing dependencies. So, be sure that you are aware of how could be all of these softwares installed and configured into your development machine. Our final project will look like below image. PrimeFaces Example, Primefaces Tutorial, Primefaces, JSF Primefaces Tutorial

创建 Eclipse 项目

Eclipse IDE支持开发Web项目动态项目伞。要创建动态项目,只需按照以下步骤操作:

  • 打开 Eclipse IDE
  • 右键单击项目资源管理器空间并选择新动态Web项目

JSF Primefaces, Primefaces Tutorial, Primefaces Example, JSF Primefaces Eclipse

  • 通过设置项目名称、目标运行时、源文件夹、上下文根、内容目录和 web.xml 完成项目创建过程

JSF 安装和配置

正如我们之前提到的,我们的目标是使用 JSF/Primefaces 来开发使用 primefaces 用户界面组件的 Web 应用程序,但目前,我们拥有的只是一个简单的动态应用程序,需要更多步骤来配置 jsf。要将 jsf 添加到您的项目中,您需要添加jsf 方面请注意,添加 jsf 实现确实可以帮助您构建使用 Mojarra 的 jsf 应用程序。要添加该方面,您需要执行以下步骤:

  1. 打开创建的项目的属性窗口
  2. 在 Project Facets 窗格中,只需选中 JavaServer Faces 并按照需要进一步配置完成配置
  3. 一旦你点击了需要进一步配置, 必须显示 JSF 功能窗口
  4. 单击添加 jsf 实现库下载库

After installing the JSF library, the JSF capabilities window looks like JSF Primefaces Tutorial, Primefaces Example, Primefaces, Primefaces Tutorial By end of this phase, you have a web application with jsf capabilities.

Primefaces 5 安装

目前,您的应用程序已准备好使用 JavaServer Faces 用户界面,但尚未使用 Primefaces。为了能够使用 primefaces,您必须遵循以下步骤:

  1. 从 primefaces 官方网站或 Maven 中心下载所需的 primefaces 库。
  2. 将下载的 Primefaces JAR 包含到 WEB-INF 文件夹下面的 lib 文件夹中

开发 Primefaces 应用程序

现在,您的项目已准备好开发 JSF/Primefaces 应用程序,如您所见。我们将创建一个简单的应用程序,其中包含 Primefaces数据表已消耗了支持 bean 中的员工列表。员工列表将由@PostConstruct特殊方法。请按照以下步骤开发完整的 JSF/Primefaces 应用程序。

  1. 创建一个名为的托管 bean查看EmployeesManagedBean
  2. 创建一个名为 Employee 的 Pojo,其中包含员工姓名 and 员工ID
  3. 创建 Primefaces 视图以使用定义的托管 bean 中的员工列表
package com.journaldev.data;

public class Employee {
	private String employeeId;
	private String employeeName;
	public String getEmployeeId() {
		return employeeId;
	}
	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}
	public String getEmployeeName() {
		return employeeName;
	}
	public void setEmployeeName(String employeeName) {
		this.employeeName = employeeName;
	}
}
package com.journaldev.jsfBeans;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import com.journaldev.data.Employee;

@ManagedBean
@SessionScoped
public class ViewEmployeesManagedBean {
	private List<Employee> employees = new ArrayList<Employee>();

	public ViewEmployeesManagedBean(){

	}

	@PostConstruct
	public void populateEmployeeList(){
		for(int i = 1 ; i <= 10 ; i++){
			Employee emp = new Employee();
			emp.setEmployeeId(String.valueOf(i));
			emp.setEmployeeName("Employee#"+i);
			this.employees.add(emp);
		}
	}

	public List<Employee> getEmployees() {
		return employees;
	}

	public void setEmployees(List<Employee> employees) {
		this.employees = employees;
	}
}

请注意 JSF 注释的使用以及 PostConstruct 注释的使用来填充员工列表。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml"
	xmlns:ui="https://java.sun.com/jsf/facelets"
	xmlns:h="https://java.sun.com/jsf/html"
	xmlns:f="https://java.sun.com/jsf/core"
	xmlns:p="https://primefaces.org/ui">
<p:outputLabel value="JournalDev - JSF2/Primefaces Tutorial"></p:outputLabel>
<p:dataTable value="#{viewEmployeesManagedBean.employees}" var="employee">
	<p:column>
		<f:facet name="header">
			<h:outputText value="Employee ID"></h:outputText>
		</f:facet>
		<h:outputText value="#{employee.employeeId}"></h:outputText>
	</p:column>
	<p:column>
		<f:facet name="header">
			<h:outputText value="Employee Name"></h:outputText>
		</f:facet>
		<h:outputText value="#{employee.employeeName}"></h:outputText>
	</p:column>
</p:dataTable>
</html>

注意使用dataTable元素从托管 bean 属性创建表。 PrimeFaces 和 JSF 负责将这些传递到视图页面进行渲染。如果您有 Servlet 背景,您可以很容易地看到步骤数量减少了 - 在 Servlet 环境中,我们首先在 Servlet 中处理请求,创建模型数据,将其设置为 request/session 中的属性,然后将其转发到用于呈现响应的 JSP 页面。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
	xmlns="https://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="https://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>JournalDev-PrimefacesWebApplication</display-name>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/faces/*</url-pattern>
	</servlet-mapping>
	<context-param>
		<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>client</param-value>
	</context-param>
	<context-param>
		<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
		<param-value>resources.application</param-value>
	</context-param>
	<listener>
		<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
	</listener>
</web-app>

请注意javax.faces.webapp.FacesServlet是控制器类,这是我们将 JSF 插入 Web 应用程序的地方。

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="https://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://xmlns.jcp.org/xml/ns/javaee https://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
    version="2.2">

</faces-config>

This is where we provide JSF components configurations such as managed beans, i18n global messages, custom view handlers and custom factory classes. Since we are using annotations and it’s a simple project, there is no configuration done here, but we will see it’s usage in future posts. Now when you will run this, you will get output as shown in below image. JSF Primefaces, JSF Primefaces Tutorial

转换成Maven

Maven 是管理 java 项目构建和依赖项的首选方式,因此在这里我们将了解如何将其转换为 Maven。 Eclipse IDE 提供了将您的动态网页项目进入马文。 Maven 将帮助您控制和管理所需的依赖项。只需右键单击创建的项目,然后从配置菜单中选择转换成Maven项目。将项目更改为 Maven 后,您必须添加所需的依赖项,以使项目可由 Maven 本身进行编译。将应用程序转换为 Maven 项目并添加 JSF 2、Primefaces 等所需的库后,您获得的假设 Maven XML 是:

<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>JournalDev-PrimefacesWebApplication</groupId>
	<artifactId>JournalDev-PrimefacesWebApplication</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<warSourceDirectory>webapp</warSourceDirectory>
					<failOnMissingWebXml>false</failOnMissingWebXml>
				</configuration>
			</plugin>
		</plugins>
		<finalName>${project.artifactId}</finalName>
	</build>
	<repositories>
		<repository>
			<id>prime-repo</id>
			<name>PrimeFaces Maven Repository</name>
			<url>https://repository.primefaces.org</url>
			<layout>default</layout>
		</repository>
	</repositories>
	<dependencies>
		<!-- Servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<!-- Faces Implementation -->
		<dependency>
			<groupId>com.sun.faces</groupId>
			<artifactId>jsf-impl</artifactId>
			<version>2.2.4</version>
		</dependency>
		<!-- Faces Library -->
		<dependency>
			<groupId>com.sun.faces</groupId>
			<artifactId>jsf-api</artifactId>
			<version>2.2.4</version>
		</dependency>
		<!-- Primefaces Version 5 -->
		<dependency>
			<groupId>org.primefaces</groupId>
			<artifactId>primefaces</artifactId>
			<version>5.0</version>
		</dependency>
		<!-- JSP Library -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.1</version>
		</dependency>
		<!-- JSTL Library -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.1.2</version>
		</dependency>
	</dependencies>
</project>

并通过执行mvn清理包针对该项目,您将获得一个 WAR 文件,准备好针对任何 Java EE 容器进行部署。只需部署并检查即可。

Summary

本教程介绍了如何使用 JSF 2 / Primefaces 来实现 Web 应用程序用户界面。为此,我们使用 Eclipse IDE 来实现这一目标,方法是创建一个动态项目,然后添加所有必需的库,无论是 JSF 2 实现所必需的库还是使用 Primefaces 组件所需的库。从下一个教程开始,我们将使用 Maven 为我们的示例创建项目。

下载 PrimeFaces Hello World 项目

从上面的链接下载示例项目并尝试它以了解更多信息。参考:Primefaces 官方网站

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF PrimeFaces 教程 的相关文章

随机推荐

  • 在 CentOS 7 上安装 PHP 7

    CentOS 7 附带 PHP 版本 5 4 该版本已正式 EOL 相当长一段时间 不再受支持 通过使用 PHP 7 您的应用程序将加载更快并消耗更少的系统资源 在本教程中 我们将解释如何安装或升级到 PHP 7 0 CentOS 7 系统
  • 如何在 Linux 中移动文件和目录(mv 命令)

    移动文件和目录是您经常需要在 Linux 系统上执行的最基本任务之一 在本教程中 我们将解释如何使用mv移动文件和目录的命令 如何使用mv命令 The mv命令 move 的缩写 用于将文件和目录从一个位置重命名和移动到另一个位置 语法为m
  • 如何在 CentOS 8 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 CentOS 8 上安装和配置 Xrdp
  • 如何在 Ubuntu 18.04 上安装 Flask

    Flask 是一个免费 开源的 Python 微型 Web 框架 旨在帮助开发人员构建安全 可扩展和可维护的 Web 应用程序 烧瓶是基于Werkzeug和用途Jinja2作为模板引擎 Unlike Django 默认情况下 Flask 不
  • Linux 中的 Whoami 命令

    在本文中 我们将介绍whoami命令 顾名思义 whoami命令打印有效用户 ID 的用户名 换句话说 它显示当前登录用户的名称 如何使用whoami命令 语法为whoami命令如下 whoami OPTION 要显示当前登录用户的名称 请
  • 如何在 CentOS 8 上安装和配置 Redmine

    Redmine 是一款免费的开源项目管理和问题跟踪应用程序 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 本教程介绍如何在 Ce
  • Linux 中的 Stat 命令

    stat是一个命令行实用程序 显示有关给定文件或文件系统的详细信息 本文介绍了如何使用stat命令 使用stat命令 语法为stat命令如下 stat OPTION FILE stat接受一个或多个输入FILE名称并包含许多控制命令行为和输
  • 如何在 CentOS 8 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 CentOS
  • Linux 中的 Chgrp 命令(更改组)

    在 Linux 中 每个文件都与一个所有者和一个组相关联 并具有确定哪些用户可以读取 写入或执行该文件的权限 本文介绍了如何使用chgrp命令更改给定文件的组所有权 chgrp命令语法 The chgrp命令采用以下形式 chgrp OPT
  • 如何在 CentOS 7 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 是 Ruby on Rails 框架背后的语言 本文展示了在 CentOS 上安装 Ruby 的几种不同方法 每种安装方法都有自己的优点 您可以选择最适合您的一种安装方法 先决条件 在开始
  • 如何每 5 分钟、10 分钟或 15 分钟运行一次 Cron 作业

    cron 作业是按指定时间间隔执行的任务 可以将任务安排为按分钟 小时 每月的某一天 每月 每周的某一天或这些的任意组合运行 Cron 作业通常用于自动化系统维护或管理 例如备份数据库或数据 使用最新的安全补丁更新系统 检查磁盘空间使用情况
  • Bash:追加到文件

    在 Bash 中 有多种方法可以将文本附加到文件中 本文解释了其中一些 要将文本附加到文件 您需要对其具有写入权限 否则 您将收到权限被拒绝的错误 使用重定向运算符附加到文件 gt gt 重定向允许您捕获命令的输出并将其作为输入发送到另一个
  • 在 C/C++ 中使用 INT_MAX 和 INT_MIN

    在本文中 我们将了解在 C C 中使用 INT MAX 和 INT MIN 这些实际上是有用的宏 它们表示最大和最小整数值 让我们用一些例子来看看它 使用 INT MAX 和 INT MIN INT MAX 是一个表示最大整数值的宏 同样
  • Google Guice 依赖注入示例教程

    谷歌指南是在应用程序中自动执行依赖项注入的框架 如果您直接遇到这里 我建议您查看一下依赖注入示例在这里我们了解了传统对象创建方法的问题以及依赖注入的实现优势 在上一篇教程中 我们学习了如何在应用程序中手动实现依赖注入 但是 当应用程序中的类
  • 如何在 CentOS 7 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LEMP Linux Nginx MySQL MariaDB PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 CentOS 7
  • 如何配置 DNS 循环负载平衡以实现高可用性

    介绍 尽管这是一种更有争议的技术 但利用提供商的全球影响力在地理上分发应用程序的一个好方法是使用和管理 DNS 响应 即返回的 IP 地址列表 除非您愿意在硬件和基础设施成本上花费一点钱 否则使用 DNS 来实现高可用性可能是一个很好的方法
  • 如何在 CentOS 7 上使用 FreeIPA 设置集中式 Linux 身份验证

    介绍 FreeIPA是 Linux 的开源安全解决方案 提供帐户管理和集中身份验证 类似于 Microsoft 的 Active Directory FreeIPA 构建在多个开源项目之上 包括 389 Directory Server M
  • Spring Boot 教程

    欢迎来到 Spring Boot 教程 春季启动是 Pivotal Team The Spring Team 的一个全新项目 它是在现有 Spring 框架之上开发的框架 Spring Boot 教程 Spring Boot使用全新的开发模
  • 如何使用 Whisper 和 Spleeter AI 工具制作卡拉 OK 视频

    介绍 人工智能工具可用于处理图像 音频或视频以产生新颖的结果 直到最近 在不使用大量时间和计算能力的情况下 自动编辑图像或音频仍然具有挑战性 即使如此 通常也只能运行交钥匙滤波器来删除声音中的某些频率或更改图像的调色板 较新的方法使用人工智
  • JSF PrimeFaces 教程

    欢迎来到 JSF Primefaces 教程 JavaServer Faces是当今用于实现 Java Web 应用程序用户界面的领先框架之一 JSF 已经组件化了 Web 应用程序 特别是与界面相关的部分 因为 JSF 中的所有单一视图都