Java Server Faces 参考书籍 Java Server Faces 核心编程.

Slides:



Advertisements
Similar presentations
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
Advertisements

LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第 7 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 与 JavaBean.
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
第一章 餐饮服务程序 学习目的: 掌握餐饮服务四个基本环节的内容 正确表述和运用各种餐饮形式的服务程序 熟悉并利用所学知识灵活机动地为不同需求的 客人提供服务.
资源平台应用培训 武汉市交通学校信息化建设指导委员会.
HE Fixed Assets Manage System
动态Web开发技术--JSP.
第 4 章 PHP 基本語法.
104年度國立宜蘭大學新進主管研討 主計業務宣導說明
第一章 JSP概述.
国家科学图书馆: 刘丹军、赵雅娟、王晓梅、胡正银等 创想通科技: 阎武鹏 等 2010年 洛阳
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
102年實施之高中職及五專多元入學(含免試入學)之招生機制
C语言程序设计 李伟光.
读者与图书馆 2009年春季版 总第 15 期 山 东 交 通 学 院 图 书 馆 2009年3月.
我征服了黃山 林達的黃山之旅 2006春.
培训内容:ExMobi二次开发培训 新浪微博: 移动应用开发中间件ExMobi 微信服务号: ExMobi 门户注册地址: 开发支撑电话:
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
基于SSH的web开发 AND 企业级WEB应用开发新技术
2012级暑期放假安全教育 及宿舍搬迁工作布置会 北京化工大学理学院 辅导员:曹鼎 2013年6月6日.
石家庄迅步网络科技有限公司 联系人:张会耀 电话:
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
JSTL标签库 讲师:梁 桐 北京传智播客教育 1。缓存数据 2。处理字符乱码 3。监听器中的定时器
第一页是课程的标题 Spring入门示例.
MVC Servlet与MVC设计模式.
攻击JAVA WEB 阿里巴巴集团安全中心 周拓.
J2EE Struts 和Spring 的区别.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
网 站 设 计 与 建 设 Website design and developments
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
物质的组成、性质及变化 物质的组成 构成物质的微粒 微粒间的相互作用 物质的分类 按状态分类 按组成分类 物质的性质 物理性质 化学性质.
会计技能综合实训 ——会计分工.
课程整体教学设计 ——《面向对象程序设计基础》
2015年云南财经大学图书馆 新生入馆教育考核试题 答题指南
转正述职报告 乐恩公司 史航
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
减免税管理系统 演示汇报 汉寿县地方税务局 王成名· 下面由我向各位介绍,减免税管理系统,请各位领导多提宝贵意见。
Ch07 PHP程式基礎 網頁程式設計.
Hello World 體驗實作第一個JSP程式.
Lotus Domino R7 Designer
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
第六章 窗口系统和用户界面管理系统 山东大学计算机学院.
简单的介绍,简单的配置,简单的扩展 By jfm
Spring依赖注入及AOP简介.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
變數命名 保留字(Reserved Word)
第一讲 J2EE基础 博和利初级培训 —开发技能.
程序语言的现在和未来 孙志岗.
Dr. Ming Qiu Xiamen University Software School
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
指導老師:王素華 老師 B 劉盈君 B 李昭協 B 溫焌民 B 黃筱珊
Reusable software component
微信商城系统操作说明 色卡会智能门店.
95年度高屏醫療網 以病人為中心之醫療照護— 以弱勢族群為重點 期末報告
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
教育部特殊教育通報網 學生異動、接收操作說明.
Scala编程
方格紙上畫正方形.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
银川社保网上申报 宁夏人力资源和社会保障 网上服务大厅操作
第5章 表达式语言.
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
第四章 jsp语法 4.1 jsp页面的基本结构 一个jsp页面可由五种元素组合而成: 普通的html标记符
Presentation transcript:

Java Server Faces 参考书籍 Java Server Faces 核心编程

Java Server Faces JSF产生的目的 JSF具有以下部件 将快速用户界面开发引入到服务器端JAVA 一套预制的UI组件 事件驱动的编程模型 使得第三方开发者能够支持其他组件的组件模型

Java Server Faces 与Struts的相似性 如果对于Struts熟悉的话,会发现JSF具有与Struts很相似的体系结构,因为JSF的设计者之一就是Struts的设计者

Java Server Faces 如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF

Java Server Faces 有很多方案试着解决web开发的种种困境,而各自的着眼点各不相同,有的从程序设计人员的角度来解决,有的从网页设计人员的角度来解决,各种框架被提出,所造成的是各种不统一的标签与框架,集成开发环境(IDE)难以整合这些标签与框架,另一方面,开发人员的学习负担也不断的加重,他们必须一人了解多个角色的工作

Java Server Faces JavaServer Faces的提出在试图解决这个问题,它试图在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰,它综合了各家厂商现有的技术特点,由Java Community Process(JCP)团队开发出来的一套标准,并在2004年三月发表了JavaServer Faces 1.0实现成果

Java Server Faces 从网页设计人员的角度来看,JavaServer Faces提供了一套像是新版本的HTML标签,但它不是静态的,而是动态的,可以与后端的动态程序结合,但网页设计人员不需要理会后端的动态部份,网页设计人员甚至不太需要接触JSTL这类的标签,也可以动态的展现数据(像是动态的查询表格内容),JavaServer Faces提供标准的标签,这可以与网页编辑程序结合在一起,另一方面,JavaServer Faces也允许您自定义标签

Java Server Faces 从应用程序设计人员的角度来看,JavaServer Faces提供一个与传统应用程序开发相类似的模型(当然因某些本质上的差异,模型还是稍有不同),他们可以基于事件驱动来开发程序,不必关切HTTP的处理细节,如果必须处理一些视觉组件的属性的话,他们也可以直接在整合开发环境上拖拉这些组件,点选设定组件的属性,JavaServer Faces甚至还为应用程序设计人员处理了对象与字符串(HTTP传送本质上就是字符串)间不匹配的转换问题

Java Server Faces 从UI组件开发人员的角度来看,他们可以设计通用的UI组件,让应用程序的开发效率提高,就如同在设计Swing组件等,UI开发人员可以独立开发,只要定义好相关的属性选项来调整细节,而不用受到网页设计人员或应用程序设计人员的干扰。 三个角色的知识领域原则上可以互不干扰,根据您的角色,您只要了解其中一个知识领域,就可以运用JavaServer Faces,其它角色的知识领域您可以不用了解太多细节

Java Server Faces 当然,就其中一个角色单独来看,JavaServer Faces隐藏了许多细节,若要全盘了解,其实JavaServer Faces是复杂的,每一个处理的环境都值得深入探讨,所以学习JavaServer Faces时,您要选择的是通盘了解,还是从使用的角度来了解,这就决定了您学习时所要花费的心力

Java Server Faces 要使用JSF,首先您要先取得JavaServer Faces参考实现(JavaServer Faces Reference Implementation),在将来,JSF会与Container整合在一起,届时您只要下载支持的Container,就可以使用JSF的功能

第一个JSF程序 一个用户登陆程序示范 新建WEB工程,增加对JSTL与JSF支持

导航规则设置 在JSF中是根据faces-config.xml中<navigation-rule>设定,以决定在符合的条件成立时,该连结至哪一个页面 对于JSF,每一个视图(View)都有一个独特的标识(identifier),称之为View ID,在JSF中的View ID是从Web应用程序的环境相对路径开始计算,设定时都是以/作为开头,如果您请求时的路径是/pages/index.faces,则JSF会将副文件名改为/pages/index.jsp,以此作为view-id

导航规则设置 在<navigation-rule>中的<from-view-id>是个选择性的定义,它规定了来源页面的条件,<navigation-case>中定义各种导览条件,<from-outcome>定义当表单结果符合的条件时,各自改导向哪一个目的页面,目的页面是在<to-view-id>中定义

导航规则设置 您还可以在<navigation-case>中加入<from-action>,进一步规范表单结果必须根据哪一个动作方法(action method),当中是使用 JSF Expression Language 来设定

导航规则设置

导航规则设置 在导航时,预定义都是使用forward的方式,您可以在<navigation-case>中加入一个<redirect/>,让JSF发出让浏览器重新导向(redirect)的header,让浏览器主动要求新网页

导航规则设置 您的来源网页可能是某个特定模组,例如在/admin/下的页面,您可以在<from-view-id>中使用通配符,也就是使用 * 字符 <from-view-id>/admin/*</from-view-id> 在上面的设定中,只要来源网页是从/admin来的,都可以开始测试接下来的<navigation-case>

导航规则设置 <from-view-id>如果没有设定,表示来源网页不作限制,您也可以使用 * 显式的在定义文件中表明 或

JSF Expression Language

JSF Expression Language 在JSF标签的属性上," 与 " (或'与')之间如果含有EL,则会加以运算,您也可以这么使用它: ... <f:view> 名称, 年龄:<h:outputText value="#{userBean.name}, #{userBean.age}"/> </f:view> 一个执行的结果可能是这样显示的: 名称, 年龄:zhangsan,20

JSF Expression Language EL的变量名也可以程序执行过程中所声明的名称,或是JSF EL预定义的隐含对象,例如下面的程序使用param隐含对象来取得使用者输入的参数

JSF Expression Language

JSF Expression Language

JSF Expression Language

JSF Expression Language

国际化信息 JSF的国际化(Internnationalization)信息处理是基于Java对国际化的支持,您可以在一个信息资源文件中统一管理信息资源,资源文件的名称是.properties,而内容是名称与值的配对

国际化信息 资源文件名称由basename加上语言与地区来组成 * basename.properties * basename_en.properties * basename_zh_CN.properties 没有指定语言与地区的basename是预定义的资源文件名称,JSF会根据浏览器送来的Accept-Language header中的内容来决定该使用哪一个资源文件名称

国际化信息

国际化信息 messages_zh_CN.txt titleText=JSF示范 hintText=请输入名称与密码 nameText=名称 passText=密码 commandText=送出

国际化信息

国际化信息 接下来您可以使用<f:loadBundle>标签来指定载入信息资源 参考页面index.jsp 如此一来,如果您的浏览器预定义接受zh_CN语系的话,则页面上就可以显示中文,否则预定义将以英文显示

国际化信息

Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在配置文件中,您只要修改配置文件,就可以修改 Bean 之间的相依关系

Backing Beans JSF使用 JavaBean 来达到程序逻辑与视图分离的目的,在JSF中的Bean其角色是属于Backing Bean,又称之为Glue Bean,其作用是在真正的业务逻辑Bean及UI组件之间搭起桥梁,在Backing Bean中会调用业务逻辑Bean处理使用者的请求,或者是将业务处理结果放置其中,等待UI组件取出当中的值并显示结果给使用者 JSF将Bean的管理集中在faces-config.xml中

Backing Beans 可以将Bean存活范围设定为none,当设定为none时会在需要的时候生成一个新的Bean,例如您在一个method中想要生成一个临时的Bean,就可以将之设定为none。 在JSF页面上要取得Bean的属性,是使用 JSF表示语言 (Expression Language),要注意到的是,JSF表示语言是写成 #{expression},而 JSP表示语言 是写成 ${expression},因为表示层可能是使用JSP,所以必须特别区分,另外要注意的是,JSF的标签上的属性设定时,只接受JSF表示语言

Beans的配置与设定 JSF预定义会读取faces-config.xml中关于Bean的定义,如果想要自行设置定义文件的名称,我们是在web.xml中提供javax.faces.CONFIG_FILES参数

Beans的配置与设定 定义文件可以有多个,中间以 "," 区隔

Beans的配置与设定

Beans的配置与设定 如果有必要在启始Bean时,自动设置属性的初始值,则可以如下设定

Beans的配置与设定 如果要设定属性为 null 值,则可以使用<null-value/>标签

Beans的配置与设定 属性不一定是字符串值,也许会是int、float、boolean等等类型,您可以设定<value> 值时指定这些值的字符串名称,JSF会尝试进行转换,例如设定为true时,会尝试使用Boolean.valueOf()方法转换为boolean的 true,

Beans的配置与设定

Beans的配置与设定 可以将其它产生的Bean设定给另一个Bean的属性

Beans上的List, Map 如果Bean上有接受List或Map类型的属性,则您也可以在配置文件中直接设定这些属性的值

Beans上的List, Map 这是一个设定接受List类型的属性,我们使用<list-entries>标签指定将设定一个List对象,其中<value-class>指定将存入List的类型,而<value>指定其值,如果是基本类型,则会尝试使用指定的 <value-class>来作Wrapper类 设定Map的话,则是使用<map-entries>标

Beans上的List, Map

Beans上的List, Map 由于Map对象是以key-value对的方式来存入,所以我们在每一个<map-entry>中使用<key>与<value>标签来分别指定 您也可以直接像设定Bean一样,设定一个List或Map对象

Beans上的List, Map

数据转换与验证 转换器(Converter)协助模型与视图之间的数据转换,验证器(Validator)协助进行语意检验(Semantic Validation)

标准转换器 JSF定义了一系列标准的转换器(Converter),对于基本数据类型(primitive type)或是其Wrapper类,JSF会使用 javax.faces.Boolean、javax.faces.Byte、 javax.faces.Character、javax.faces.Double、javax.faces.Float、 javax.faces.Integer、javax.faces.Long、javax.faces.Short等自动进行转换

标准转换器 至于DateTime、Number,我们可以使用<f:convertDateTime>、<f:convertNumber>标签进行转换,它们各自提供有一些简单的属性,可以让我们在转换时指定一些转换的格式细节 参见范例