java web mvc-05-JSF JavaServer Faces 入门例子

拓展阅读

Spring Web MVC-00-重学 mvc

mvc-01-Model-View-Controller 概览

web mvc-03-JFinal

web mvc-04-Apache Wicket

web mvc-05-JSF JavaServer Faces

web mvc-06-play framework intro

web mvc-07-Vaadin

web mvc-08-Grails

开源

The jdbc pool for java.(java 手写 jdbc 数据库连接池实现)

The simple mybatis.(手写简易版 mybatis)

JSF 的入门例子

以下是一个简单的JavaServer Faces(JSF)入门例子,演示如何创建一个简单的Web应用程序。在这个例子中,我们将创建一个简单的登录页面,用户输入用户名和密码,点击登录按钮后显示欢迎消息。

  1. 创建一个新的Web应用项目:
    在你的IDE(例如Eclipse、IntelliJ等)中创建一个新的Web应用项目。

  2. 添加JSF支持:
    确保项目中添加了JSF的支持库。你可以在WEB-INF/lib目录下添加javax.faces.jar等JSF相关的JAR文件。

  3. 创建JSF页面:
    WebContent目录下创建一个名为login.xhtml的JSF页面。

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"><h:head><title>JSF Login Example</title>
    </h:head>
    <h:body><h:form><h:outputLabel value="Username:"/><h:inputText value="#{userBean.username}" required="true"/><h:outputLabel value="Password:"/><h:inputSecret value="#{userBean.password}" required="true"/><h:commandButton value="Login" action="#{userBean.login}"/></h:form>
    </h:body>
    </html>
    
  4. 创建Managed Bean:
    创建一个名为UserBean的Managed Bean,用于处理用户输入和登录逻辑。

    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;@ManagedBean
    @SessionScoped
    public class UserBean {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String login() {// Simple login logic (for demonstration purposes)if ("admin".equals(username) && "password".equals(password)) {return "welcome"; // Navigation case to welcome.xhtml} else {return "error"; // Navigation case to error.xhtml}}
    }
    
  5. 创建欢迎和错误页面:
    创建welcome.xhtmlerror.xhtml页面,用于显示登录成功和失败的消息。

    <!-- welcome.xhtml -->
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"><h:head><title>Welcome</title>
    </h:head>
    <h:body><h:outputText value="Welcome, #{userBean.username}!"/>
    </h:body>
    </html>
    
    <!-- error.xhtml -->
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"><h:head><title>Error</title>
    </h:head>
    <h:body><h:outputText value="Login failed. Please check your credentials."/>
    </h:body>
    </html>
    
  6. 配置导航规则:
    faces-config.xml中配置导航规则,以便在登录成功或失败时导航到相应的页面。

    <navigation-rule><from-view-id>/login.xhtml</from-view-id><navigation-case><from-outcome>welcome</from-outcome><to-view-id>/welcome.xhtml</to-view-id></navigation-case><navigation-case><from-outcome>error</from-outcome><to-view-id>/error.xhtml</to-view-id></navigation-case>
    </navigation-rule>
    
  7. 运行应用程序:
    部署你的应用程序到Web服务器(如Tomcat)并访问http://localhost:8080/yourapp/login.xhtml

这是一个简单的JSF入门例子,演示了如何创建一个基本的用户登录页面和相应的逻辑。

请注意,这只是一个简单的示例,实际应用程序中可能需要更复杂的安全和验证机制。

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

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

相关文章

Redis学习指南(29)-Redis高性能特性之多路复用模型

Redis是一种高性能的键值存储系统&#xff0c;它以其快速和可扩展性而受到广泛关注。在Redis高性能的背后&#xff0c;有许多关键特性与机制在起作用。其中之一是多路复用模型&#xff0c;它在Redis中起到了至关重要的作用。 多路复用模型是指单个线程能够同时处理多个客户端连…

计算机网络中的网络地址转换

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、什么是网络地址转换 &#xff08;NAT&#xff09;&#xff1f;二、NAT 如何工作&#xff1f;NAT协议的主要用途NAT 内部和外部地址网络中的 NAT 类型网络地…

绝地求生:本周三停机维护更新4小时: RASH悲喜套装即将下线!

本周三将迎来停机维护更新四小时~&#xff0c;同时游戏商城内RASH悲喜联名套装即将下线&#xff0c;同时空投签到任务和荣都地图翻牌任务即将下线~ 预计维护时间: 2024年1月24日08:00~12:00 本周地图轮换情况 (1月24日 ~ 1月31日) 可自主选择地图的地区:艾伦格、泰戈、帝斯顿、…

DL/T 645 协议学习笔记

一、多功能电能表通信协议 DL/T645多功能电能表通信协议&#xff08;Multi-function watt-hour meter communication protocol&#xff09;标准是为统一和规范电能表的多功能电能表与数据终端设备进行数据交换时的物理连接和协议。 1、RS-485 标准串行电气接口 本标准采用 RS-…

按键控制LED灯

目录 文件夹Hardware&#xff1a; 文件LED.c: 文件LED.h: 文件Key.c: 文件Key.h: 文件夹User&#xff1a; 文件main.c: 首先模块化管理代码 文件夹Hardware&#xff1a; 文件LED.c: // 引入STM32F10x系列微控制器的头文件&#xff0c;包含了一些基本的寄存器和函数声…

5.Python爬虫前的准备工作

知识准备 1) Python语言 Python 爬虫作为 Python 编程的进阶知识&#xff0c;要求具备较好的 Python 编程基础 了解 Python 语言的多进程与多线程&#xff0c;并熟悉正则表达式语法&#xff0c;也有助于编写爬虫程序 2) Web前端 了解 Web 前端的基本知识&#xff0c;比如 …

2-项目介绍

项目介绍 1.文件结构 1.1.后端结构 com.ruoyi ├── common // 工具类 │ └── annotation // 自定义注解 │ └── config // 全局配置 │ └── constant // 通用…

用Netty手写Http/Https服务器

Netty是一个以事件驱动的异步通信网络框架&#xff0c;可以帮助我们实现多种协议的客户端和服务端通信&#xff0c;话不多说&#xff0c;上代码&#xff0c;需要引入下方依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artif…

BUU LFI COURSE 1

靶场教程 1.开局界面&#xff0c;已给出源代码。2.存在文件包含include &#xff0c;直接通过传参 file 进行获取 flag。3.通过访问 url 发现报错&#xff0c;说明 flag 并不在当前目录下&#xff0c;只需要向前访问目录即可。 http://b6ed0fd6-c852-40d0-b285-32d9d00fbf00.…

抖去推短视频矩阵系统+实景无人直播系统技术源头开发

抖去推爆款视频生成器&#xff0c;通过短视频矩阵、无人直播&#xff0c;文案引流等&#xff0c;打造实体商家员工矩阵、用户矩阵、直播矩阵&#xff0c;辅助商家品牌曝光&#xff0c;团购转化等多功能赋能商家拓客引流。 短视频矩阵通俗来讲就是批量剪辑视频和批量发布视频&a…

查询小世界账号网页HTML源码

HTML源码&#xff0c;记事本打开后可以修改里面的内容&#xff0c;电脑本地双击html可以查看效果&#xff0c;复制小世界个人主页链接就可以查询QQ号&#xff0c; 蓝奏云&#xff1a;https://wfr.lanzout.com/ihXCn1lz2jnc

MySQL数据库面试知识点

1、数据库基础&#xff1a; MySQL是一个开源的关系型数据库管理系统&#xff0c;用于存储、管理和检索数据。它支持多种存储引擎&#xff0c;包括InnoDB、MyISAM等。MySQL是由瑞典公司MySQL AB开发&#xff0c;后来被Sun Microsystems收购&#xff0c;最终被甲骨文公司(Oracle…

4G物联网LED智慧路灯杆显示屏产品介绍

4GLED显示屏是一种具有4G网络连接功能的LED显示屏。它可以通过4G网络连接到互联网&#xff0c;实现远程管理和控制&#xff0c;方便进行内容更新和管理。同时&#xff0c;4GLED显示屏具有高亮度、高清晰度和高对比度的特点&#xff0c;可以提供清晰明亮的图像和视频展示效果。它…

stm32产品架构

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据 总结 前言 起因是我在看野火的ucosiii&#xff0c;然后他是基于i.mx芯片。然后我就很疑惑i.mx是什么芯片&#xff0c;看了下好像是ARM-M7(或者叫ARMCM7)架构的芯片。然后我又疑惑ARM-M7又是什么架…

omron adept控制器维修SmartController EX

欧姆龙机器人adept运动控制器维修SmartController EX 19300-000 维修范围&#xff1a;姆龙机器人&#xff1b;码垛机器人&#xff1b;搬运机器人&#xff1b;焊机机器人&#xff1b;变位机等。 Adept Viper s650/s850用于装配、物料搬运、包装和机械装卸&#xff0c;循环周期短…

二进制?十进制!(C语言刷题)(位运算)

专栏:https://blog.csdn.net/2301_79293429/category_12545690.html 题目描述 给定两个十进制整数 : A,B 你需要把它们的二进制形式以十进制的运算法则相加输出结果。 例如&#xff1a; A3,B2的时候&#xff0c;A 的二进制表示是 : 11 , B 的二进制表示是 10 &#xff0c;…

物流实时数仓——概述与准备工作

目录 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 (三)最终效果 二、关于离线与实时的相关概念 三、实时数仓设计思路 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 Hadoop 3.3.4 Zookeeper 3.7.1 Kafka 3.3.1 Hbase 2.4.11 Redis 6.0.8 Flink 1.17…

mysqldump添加从库或者重新同步从库

一、GTID添加从库的方法 1.如果master所有的binlog还在&#xff0c;安装slave后&#xff0c;直接change master 到master 原理是直接获取master所有的gtid并执行 优点是简单 缺点是如果binlog太多&#xff0c;数据完全同步需要的时间较长&#xff0c;并且需要master一开始就启…

Leetcode2806. 取整购买后的账户余额

Every day a Leetcode 题目来源&#xff1a;2806. 取整购买后的账户余额 解法1&#xff1a;数学 题目要求为将 purchaseAmount 四舍五入到最近的 10 的倍数作为 roundedAmount&#xff0c;计算 100−roundedAmount 的值并返回。 分类讨论即可。 代码&#xff1a; /** lc…

机器学习实验3——支持向量机分类鸢尾花

文章目录 &#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;数据预处理&#x1f9e1;&#x1f9e1;代码认识数据相关性分析径向可视化各个特征之间的关系图 &#x1f9e1;&#x1f9e1;支持向量机SVM求解&#x1f9e1;&#x1f9e1;直觉…