项目篇--Maven+Idea+ PrimeFaces+Jsf--项目搭建

news2024/10/24 16:39:22

文章目录

  • 前言
  • 一、PrimeFaces 和 Jsf:
    • 1.1 JSF 基础:
    • 1.2 PrimeFaces 扩展:
  • 二、项目搭建:
    • 2.1 Maven 项目的创建:
    • 2 xml 配置:
      • 2.1 pom.xml 配置
      • 2.2web.xml 配置:
    • 2.3 代码:
      • 2.3.1 页面:
      • 2.3.2 bean :
    • 2.4 运行:
    • 2.4.1 通过maven 构建war 包
    • 2.4.2 tomcat 运行:
      • 2.4.2.1 添加tomcat:
  • 总结


前言

PrimeFaces 是对JSF 的一层封装,使用PrimeFaces+Jsf 进行前端组件的开发,由于PrimeFaces 官网对项目的搭建并没有详细的步骤,固本文对项目的搭建过程及遇到的问题进行整理。
PrimeFaces 官网传送门
本文使用环境及版本:

  • idea: IntelliJ lDEA 2023.3.7
  • maven: maven apache-maven-3.9.8
  • jdk: jdk8

一、PrimeFaces 和 Jsf:

1.1 JSF 基础:

JSF 是一种基于组件的 Web 应用程序框架,它提供了一种声明式的方式来构建用户界面。JSF 由 Java 规范请求(JSR)定义,并且在 Java EE 平台中得到广泛支持。
JSF 提供了基本的 UI 组件(如输入文本框、按钮等)、页面导航、表单处理和验证等功能。

1.2 PrimeFaces 扩展:

PrimeFaces 是在 JSF 的基础上构建的,它扩展了 JSF 的功能,提供了更多高级的 UI 组件和功能。
PrimeFaces 的组件与 JSF 的生命周期和事件处理机制紧密集成,开发人员可以使用 JSF 的标准方式来处理 PrimeFaces 组件的事件和数据绑定。

二、项目搭建:

2.1 Maven 项目的创建:

(1)file -> new->project
在这里插入图片描述(2) 使用maven 脚手架创建项目:
在这里插入图片描述(3)设置maven 仓库地址:
在这里插入图片描述

(4)设置项目的编码:
在这里插入图片描述

2 xml 配置:

工程目录结构:
在这里插入图片描述

2.1 pom.xml 配置

(1) pom.xml 文件参考:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>primefaces_test</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>primefaces_test</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- PrimeFaces -->
    <!-- https://mvnrepository.com/artifact/org.primefaces/primefaces -->
    <dependency>
      <groupId>org.primefaces</groupId>
      <artifactId>primefaces</artifactId>
      <!--<version>6.0</version>-->
      <version>7.0</version>
    </dependency>


    <!-- JSF 2 -->
    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-api</artifactId>
      <!--<version>2.1.11</version>-->
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-impl</artifactId>
    <!--  <version>2.1.11</version>-->
      <version>2.2.8</version>
    </dependency>
    <!--servlet  -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
    </dependency>

    <!-- EL -->
    <dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>el-impl</artifactId>
      <version>2.2</version>
    </dependency>

    <!-- Tomcat 6 need this
    <dependency>
        <groupId>com.sun.el</groupId>
        <artifactId>el-ri</artifactId>
        <version>1.0</version>
    </dependency>
    -->

  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.2</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
          <warSourceDirectory>src/main/webapp</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

(2) PrimeFaces 不同版本与 JSF 版本的一般兼容关系:
PrimeFaces 3.x

  • 通常与 JSF 2.0 兼容。

PrimeFaces 4.x 和 5.x

  • 与 JSF 2.1 和 2.2 兼容性较好。

PrimeFaces 6.x

  • 如前面所述,与 JSF 2.2 及更高版本兼容较好。

PrimeFaces 7.x 和 8.x

  • 建议与 JSF 2.3 及更高版本搭配使用。

(3)PrimeFaces 官网的的参考版本:
https://primefaces.github.io/primefaces/14_0_0/#/gettingstarted/dependencies
在这里插入图片描述

2.2web.xml 配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <display-name>PrimeFaces Application</display-name>
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    <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>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

2.3 代码:

2.3.1 页面:

index.xhtml

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:utils="http://java.sun.com/jsf/composite/utils">
<h:head>
    <title>Simple PrimeFaces Form</title>
</h:head>
<h:body>
    <h:form id="form">
        <p:outputLabel for="username" value="Username:" />
        <p:inputText id="username" value="#{userBean.username}"  />

        <p:outputLabel for="password" value="Password:" />
        <p:password id="password" value="#{userBean.password}"  />

        <p:commandButton  value="Submit" actionListener="#{userBean.submit}"  />
    </h:form>
</h:body>
</html>

2.3.2 bean :

UserBean

package org.example.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;

@ManagedBean(name = "userBean")
@ViewScoped
public class UserBean implements Serializable {
    private String username;
    private String password;

    public String getUsername() {
        return username+"456";
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password+"123";
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String submit() {
        System.out.println("Username: " + username);
        System.out.println("Password: " + password);
        return "index1";
    }
}

2.4 运行:

2.4.1 通过maven 构建war 包

在这里插入图片描述在这里插入图片描述

2.4.2 tomcat 运行:

tomcat 下载和解压:
链接:https://pan.baidu.com/s/1l2L7qTrBTDD_hiFWszu9Nw?pwd=xr9o
提取码:xr9o

2.4.2.1 添加tomcat:

(1) 从下拉框中编辑配置文件
在这里插入图片描述
(2)从本地添加tomcat
在这里插入图片描述
(3)设置本地tomcat 的路径

在这里插入图片描述(4)添加启动项的war包:
在这里插入图片描述
在这里插入图片描述
(5)修改项目访问路劲
在这里插入图片描述
(6)tomcat端口等的配置
在这里插入图片描述(7)tomcat 启动:
在这里插入图片描述
(8)浏览器访问:
http://localhost:8089/primefaces_test/

在这里插入图片描述
点击 submit 会进入后台的UserBean 的submit() 方法
在这里插入图片描述


总结

本文对使用maven 搭建 PrimeFaces+Jsf–项目 进行记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2222540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(六)STM32F407 cubemx MPU6050通讯硬件寄存器配置部分(2)

这篇文章主要是个人的学习经验&#xff0c;想分享出来供大家提供思路&#xff0c;如果其中有不足之处请批评指正哈。废话不多说直接开始主题&#xff0c;本人是基于STM32F407VET6芯片&#xff0c;但是意在你看懂这篇文章后&#xff0c;不管是F1,F4,H7等一系列MPU6050通讯硬件寄…

Redis学习笔记(六)--Redis底层数据结构之集合的实现原理

文章目录 一、两种实现的选择二、ziplist1、head2、entries3、end 三、listPack1、head2、entries3、end 四、skipList1、skipList原理2、存在的问题3、算法优化 五、quickList1、检索操作2、插入操作3、删除操作 六、key与value中元素的数量 本文参考&#xff1a; Redis学习汇…

从天边的北斗到身边的北斗 —— 探索北斗导航系统的非凡之旅

引言&#xff1a;穿越时空的导航奇迹 在浩瀚的夜空之中&#xff0c;北斗七星以其独特的排列&#xff0c;自古以来便是指引方向的天文坐标。而今&#xff0c;这份古老的智慧与现代科技完美融合&#xff0c;化作了覆盖全球的卫星导航系统——中国北斗。从遥远的星河到触手可及的…

不考虑光影、背景、装饰,你的可视化大屏摆脱不了平淡。

如果在可视化大屏的设计中不考虑光影、背景和装饰&#xff0c;确实难以摆脱平淡。光影效果可以为大屏增添立体感和层次感&#xff0c;吸引观众的注意力。 合适的背景能营造出特定的氛围&#xff0c;使数据展示更具情境感。而装饰元素则可以起到点缀和美化的作用&#xff0c;提…

【无标题】unity, 在编辑界面中隐藏公开变量和现实私有变量

1.unity, 在编辑界面中隐藏公开变量 [HideInInspector]public int Num; 2.[SerializeField]反序列化显示私有变量 SerializeField是Unity引擎中的一个特性&#xff0c;用于使私有变量在Inspector中可见并可编辑 [SerializeField] private int time; 实例效果如下图示&…

Xshell删除键不好使:删除显示退格^H

1、问题&#xff1a; Xshell不能删除&#xff0c;删除时出现 退格^H 2、解决方案&#xff1a; 点击上方&#xff1a;文件→属性→终端→键盘&#xff0c;把 delete 和 backspace 序列改为 ASCII 127即可。如下所示&#xff1a; 3、重启Xshell&#xff0c;即可以删除了。

UE5 射线折射

这个判断是否有标签是需要带有此标签的Actor来反射

基础知识 main函数形参 C语言

main函数完整的函数头&#xff1a;int main(int argc,char *argv[]) 或 int main(int argc,char **argv)arg-----argument参数c -----count个数v -----value值、内容 假设命令行上运行一个程序的命令如下&#xff1a;./test abc def 123 则test这个程序的main函数第一个…

论当前的云计算

随着技术的不断进步和数字化转型的加速&#xff0c;云计算已经成为当今信息技术领域的重要支柱。本文将探讨当前云计算的发展现状、市场趋势、技术革新以及面临的挑战与机遇。 云计算的发展现状 云计算&#xff0c;作为一种通过网络提供可伸缩的、按需分配的计算资源服务模式&a…

【AIGC】优化长提示词Prompt:提升ChatGPT输出内容的准确性与实用性

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;长提示词的挑战&#x1f4af;谷歌的优化长提示词技术关键因素分析 &#x1f4af;长提示词的设计原则&#x1f4af;优化长提示词的新框架方法&#x1f4af;实验结果分析不…

PostgreSQL的前世今生

PostgreSQL的起源可以追溯到1977年的加州大学伯克利分校&#xff08;UC Berkeley&#xff09;的Ingres项目。该项目由著名的数据库科学家Michael Stonebraker领导&#xff0c;他是2015年图灵奖的获得者。以下是PostgreSQL起源的详细概述&#xff1a; 一、早期发展 Ingres项目…

【正点原子K210连载】第四十七章 MNIST实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第四十七章 MNIST实验 在上一章节中&#xff0c;介绍了利用maix.KPU模块实现了车牌的检测和识别&#xff0c;本章将继续介绍利用maix.KPU模块实现的MNIST识别。通过本章的学习&#xff0c;读者将学习到MNIST识别应用在CanMV上的实现。 本章分为如下几个小节&#xff1a; 47.1 …

058_基于python时尚女装抖音号评论数据分析系统

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…

国外白帽故事 | 攻破大学数据库系统,暴露数千学生记录

引言 在这篇文章中&#xff0c;我将分享我是如何攻破一个大型大学解决方案门户服务器的&#xff0c;这个服务器服务于许多大学客户&#xff0c;并且涉及数千名学生的数据。 目标 这是一个由印度许多大学和学院使用的门户网站&#xff0c;用于管理学生记录、成绩单、出勤记录…

【JavaEE】——四次挥手,TCP状态转换,滑动窗口,流量控制

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;断开连接的本质 二&#xff1a;四次挥手 1&#xff1a;FIN 2&#xff1a;过程梳理 …

MacOS RocketMQ安装

MacOS RocketMQ安装 文章目录 MacOS RocketMQ安装一、下载二、安装修改JVM参数启动关闭测试关闭测试测试收发消息运行自带的生产者测试类运行自带的消费者测试类参考博客&#xff1a;https://blog.csdn.net/zhiyikeji/article/details/140911649 一、下载 打开官网&#xff0c;…

华为云容器引擎(CCE):赋能企业云原生转型

在当今数字化时代&#xff0c;企业面临着日益复杂的应用部署和管理挑战。为了解决这些问题&#xff0c;容器技术应运而生&#xff0c;成为云原生架构的核心。华为云容器引擎&#xff08;CCE&#xff09;作为一款全面的容器管理解决方案&#xff0c;旨在帮助企业实现高效、灵活的…

Linux终端之旅: 打包和压缩

在 Linux 世界中&#xff0c;打包和压缩文件是管理系统资源、传输数据和备份的重要技能。通过命令行工具如 tar、gzip、zip 等&#xff0c;我们可以高效地将多个文件或目录打包为一个文件&#xff0c;并通过压缩减少其体积。接下来&#xff0c;我将记录学习如何利用这些工具&am…

SpringBoot3响应式编程全套-Spring Security Reactive

目录 传送门前言一、整合二、开发1、应用安全2、RBAC权限模型 三、认证1、静态资源放行2、其他请求需要登录 四、授权 传送门 SpringMVC的源码解析&#xff08;精品&#xff09; Spring6的源码解析&#xff08;精品&#xff09; SpringBoot3框架&#xff08;精品&#xff09; …

云+AI 时代的 OceanBase

2024 年 10 月 23 日&#xff0c;OceanBase 年度发布会在北京成功举办。会上&#xff0c;CEO 杨冰表示&#xff0c;OceanBase将继续践行一体化产品战略&#xff0c;不断演进产品能力&#xff0c;从支撑关键业务负载的OLTP能力&#xff0c;到实时分析的AP能力&#xff0c;再到应…