JSF培训教程

合集下载

JavaScript培训教程(第一部分)

JavaScript培训教程(第一部分)

JavaScript基础
• WORLD WIDE WEB
– 第一阶段:基于字符的超文本 – 第二阶段:基于图形的HTML文档 – 第三阶段:Dynamic HTML文档 – 第四阶段:ACTIVE HTML文档
JavaScript基础
WEB应用程序结构:
创建WEB内容 图形编辑器 HTML编辑器 多媒体生成器 浏览器 NAVIGATOR HOT JAVA MICROSOFT IE 客户端扩展 ACTIVEX控件 JAVA APPLETS VRML NETSCAPE插件 编写脚本 JAVASCRIPT JSCRIPT VBSCRIPT
JavaScript基本语法
• Javascript的书写规则
– Javascript的语句特点:
• Javascript是一种函数式的脚本语言,很多功能均是 通过相应的函数来实现 • Javascript是区分字母的大小写 • Javascript语句是以分号作结束符
– 注释语句:支持/*…*/和//注释 – 赋值语句:=
– 变量
• 变量的声明:一般在使用一个变量前,应该事先对 变量进行声明 <script> var number var number=100 //变量声明时同时给该变量赋值 var number1,number2,number3 //在同一行中可以声明多
个变量
</script>
JavaScript基本语法
• JavaScript运算符和表达式
– 基本算术运算符(+、-、*、/、%)
• 递减运算符Var- -和- - var • Y=x- -(先赋值,再减)(X初值是5,经过运算后,X? Y?) • Y=- -X(先减,再赋值)(X初值是5,经过运算后, X? Y?)

10JSF高级知识.ppt

10JSF高级知识.ppt

HTML组件标签-1
标签
功能
呈现的HTML
外观
column 表示在UIData组件中的 在 HTML table中的一列数据 table中的一列
一列数据
commandBu 将一个表单提交给应用 HTML <input type=type>元素,其 按钮
UI组件-JSF core标签
标签类型
事件处理 标签
属性标签 数据转换
标签 Facet 标签 本地化标
签标签Βιβλιοθήκη 功能actionListener 在父亲组件上注册一个action listener
phaseListener 在UIViewRoot组件上注册一个PhaseListener实例
setPropertyActio 注册一个特殊的事件监听器,它的唯一目的是在
换器。 一个验证器模型,定义了如何在一个组件上注册验证器。
UI组件-UI组件类
UIColumn UICommand UIData UIForm
UIGraphic UIInput UIMessage UIMessages UIOutput UIPanel
表示在UIData组件中的单列数据。 表示当激活的时候触发动作的一个控件。 表示绑定到用DataModel实例表示的数据集合上的数据。 封装了一组控件,这些控件用于将数据提交给应用,类似于
validateLength 验证标签
validateLongRange
在组件上注册一个Length Validator 在组件上注册一个LongRangeValidator
validator
在组件上注册一个自定义验证器
输出标签 verbatim
form标签 view 的容器

JSF入门

JSF入门

JSF入门级教程1. JSF入门 (2)简介JSF (2)第一个JSF程序 (4)简单的导航Navigation (7)导航规则设置 (9)1.5 JSF Expression Language (11)国际化讯息 (14)2. Managed Beans (16)2.1Backing Beans (16)2.2Beans 的组态与设定 (17)上的List和Map (19)3. 数据转换与验证 (21)标准转换器 (22)自订转换器 (24)标准验证器 (27)自订验证器 (29)错误讯息处理 (31)自订转换和验证标签 (33)4. 事件处理 (37)动作事件 (37)实时事件 (40)值变事件 (44)4.4 Phase事件 (47)5. JSF 标签 (49)简介JSF标准标签 (49)5.2输出类标签 (50)输入类标签 (51)命令类标签 (51)选择类标签 (52)其它标签 (55)6. 表格处理 (56)简单的表格 (56)表头和表尾 (58)6.3TableModel 类别 (60)7. 自订组件 (62)JSF生命周期 (62)概述自订组件 (64)简单实例 (66)编码和译码 (66)组件卷标 (68)使用自订组件 (71)自订Renderer (73)如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。

1. JSF入门藉由以下的几个主题,可以大致了解JSF的轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么。

简介JSFWeb应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web应用程序开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的(stateless)本质,与传统应用程序必须维持程序运行过程中的信息有明显的违背,再则Web应用程序面对网站上不同的使用者同时的存取,其执行绪安全问题以及资料验证、转换处理等问题,又是复杂且难以解决的。

第2章JSF-PPT共30页

第2章JSF-PPT共30页
<h:inputText valueChangeListener="#{change.valueChanged}"/>
在标签中通过JSF EL表达式来制定valueChangeListener属性。即当 HtmlInputText组件的值改变时调用change中的valueChanged( )方法。 valueChanged()方法代码如下:
JSF共有4种标准事件:值改变事件、动作事件、数据模型事件以及阶段 事件。值改变事件是在用户修改组件的值之后,由输入控件触发。动作事件 在用户激活命令组件(比如按钮)时产生。数据模型事件在数据感知组件选 择了一行要处理的数据时产生。阶段事件则在JSF处理HTTP请求时产生。
1.值改变事件
值改变事件是当用户在输入组件中输入新值时产生的。可以使用值改变 监听器来处理改变事件。例如:在页面中有一个HtmlInputText组件:
图2-4猜对了
JSF关键部件
UI组件
UI组件(UI-component)是有状态的对象,在服务器中维护、提供与用户 的特定交互功能。UI组件是具有属性、方法和事件的JavaBean。它们被组 织为一个视图,而该视图通常显示为一个页面的组件树。
UI组件是JSF的中心部件,可作为积木创建从简单到复杂的各种用户界面。
JSF定义了一系列标准的转换器(Converter),对于基本类型或是其 他的封装类型 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等自动进行转换, 对于BigDecimal、BigInteger类型,则会通过javax.faces.BigDecimal、 javax.faces.BigInteger自动进行转换。

JSF1教程

JSF1教程

JSF标签系列教程(一) JSF 标准标签[日期:2008-07-05] 来源:作者:志伟JSF标签系列教程(一) JSF 标准标签JSF提供了标准的HTML Rende rer Kit,可以让您搭配JSF元件输出HTML文件,标准的HTML Re nderer Kit主要包括了几个类别:输出(Outp uts)其名称以outp ut作为开头,作用为输出指定的讯息或绑定值。

输入(Inp uts)其名称以input作为开头,其作用为提供使用者输入栏位。

命令(Commands)其名称以command作为开头,其作用为提供命令或连结按钮。

选择(Selections)其名称以select作为开头,其作用为提供使用者选项的选取。

其它包括了form、message、messages、graphic Image等等未分类的标籤。

JSF标准HTML标籤包括了几个共通的属性,整理如下:属性名称适用说明id 所有元件可指定id名称,以让其它标签或元件參考binding 所有元件綁定至UIComponentrendered 所有元件是否显示元件styleClass 所有元件设定Cascading stylesheet (CSS)value 输入、输出、命令元件设定值或绑定至指定的值valueChangeListener 输入元件设定值变事件处理者converter 输入、输出元件设定转换器validator 输入元件设定验证器required 输入元件是否验证必填栏位immediate 输入、命令元件是否为立即事件除了共通的属性之外,您还可以在某些元件上设定标籤HTML 4.0 1的属性,像是size、alt、width等属性,或者是设定DHTML事件属性,例如oncha nge、o nclick等等。

除了JSF的标准HTML标籤之外,您还需要一些标准核心标籤,这些标籤是独立于Renderer Kit的,JSF并不限制在HTML输出表示层,核心标籤可以搭配其它的Renderer Kit来使用。

第4章 JSF技术

第4章 JSF技术

4.2.1 组成部分



定义登录和欢迎屏幕的页面:index.xhtml和 welcome.xhtml。 管理用户数据的托管Bean。托管Bean是一个公开 属性的JAVA类,通常在属性后而紧跟的是遵守简 单命名约定的getter和setter方法。代码位于 UserBean.java中,见程序清单4-3。 保证应用服务器正常运行所需的配置文件 :web.xml。
UserBean.java
package javaee.jsf; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; <!-- 定义Bean的作用域为会话 --> @SessionScoped public class UserBean { <!-- 定义属性 --> private String name ; private String password; <!-- 定义与属性对应的getter 和 setter方法--> public String getName() {return name; } public void setName(String newValue) {name=newValue; } public String getPassword() { return password; } public void setPassword(String newValue) { password = newValue; } }
JSF包含三个部分:


一套预置的UI(用户界面)组件 一个事件驱动的编程模型 一个组件模型,它支持第三方开发商提供额外 的组件

第6章 JSF(深入)

第6章 JSF(深入)

二、利用监听器实现事件处理
在JSF请求处理过程的各个阶段,JSF框架都会发送
特定的Phase事件。开发人员可以对这些Phase事件通 过监听器进行捕捉来实现一些特定的操作。
PhaseId.RESTORE_VIEW PhaseId.APPLY_REQUEST_VALUES
PhaseId.PROCESS_VALIDATIONS PhaseId.UPDATE_MODEL_VALUES
JSF定义了一系列标准转换器(Converter)组件,实现了对基
本数据类型及其包装类的自动类型转换。这些基本数据类型 包括Boolean、Byte、Character、Double、Enum、Float、Integer、 LongConverter、Short、BigDecimal和BigInteger。这些标准转换 器组件都包含在javax.faces.convert包中。 对于DateTime、Number等常见数据类型,JSF框架同样也提供 了标准类型转换器。开发人员可以使用f:convertDateTime、 f:convertNumber等标记引用这些转换器。它们各自提供一些 简单的属性,可以让开发人员在转换时指定转换的一些格式 细节。 每个标准转换器都关联着一条标准的错误提示信息。当类型 转换发生错误时,错误信息将被存储到FaceContext的错误信 息列表中。在JSF视图中可以通过标记<h:message>显示这些 错误信息,其中<h:message>的属性for代表相关联的组件的名 称,经常被用来对要显示的错误消息进行过滤。
一、JSF请求处理过程
请求

是请求回调?

创建视图
恢复视图
应用请求值

第12章 一个简单的JSF应用

第12章 一个简单的JSF应用

开发步骤
创建Web工程 创建Web工程
工程名:login 工程名:login 添加对JSF 的支持:在Web 工程上右键点击, 选择 MyEclipse| 添加对 JSF的支持:在 Web工程上右键点击 , 选择MyEclipse | add JSF Capabilities
编写辅助bean 编写辅助bean
一种是使用MyEclipse 提供的图形化设计工具, 一种是使用 MyEclipse提供的图形化设计工具 , 直接将相应的组件 (例如,文本框、按钮等)拖到JSP页面中; 例如,文本框、按钮等)拖到JSP页面中; 另一种方法是直接使用编辑器将对应的代码写入JSP文件中。 另一种方法是直接使用编辑器将对应的代码写入JSP文件中。
12.4 JSF标准请求处理生命周期各阶段分析 12. JSF标准请求处理生命周期各阶段分析
1) 重建视图(Restore View) : 生成jsp视图,jsf框架将访问的*.faces转 重建视图(Restore 生成jsp视图,jsf框架将访问的* faces转
换为* jsp视图返回客户端 换为*.jsp视图返回客户端
配置辅助Bean 配置辅助Bean
在JSF应用资源配置文件faces-config.xml中配置前面定义的辅 JSF应用资源配置文件faces-config.xml中配置前面定义的辅 助 bean 。 这样 , 页面制作人员就可以在页面上的组件标签中使 bean。 这样, 用统一EL访问bean属性。配置步骤如下: 用统一EL访问bean属性。配置步骤如下:
要求:
对页面输入的用户名称和密码进行验证, 对页面输入的用户名称和密码进行验证,要求用户名和密码不能为 空,密码的长度不少于6位。 密码的长度不少于6

JSF入门教程

JSF入门教程

从UI组件开发人员的角度来看,他们可以设计通用的UI组件,让应用程序的开 发产能提高,就如同在设计Swing组件等,UI开发人员可以独立开发,只要定义好 相关的属性选项来调整细节,而不用受到网页设计人员或应用程序设计人员的干扰。
三个角色的知识领域原则上可以互不干扰,根据您的角色,您只要了解其中一 个知识领域,就可以运用JavaServer Faces,其它角色的知识领域您可以不用了解太 多细节。
3. 数据转换与验证
3.1 标准转换器 3.2 自定义转换器 3.3 标准验证器 3.4 自定义验证器 3.5 错误信息处理 3.6 自定义转换, 验证标签
4. 事件处理
4.1 动作事件 4.2 即时事件 4.3 值变事件 .4 Phase事件
JSF 入门
如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF 将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用 自己熟悉的方式来看JSF。
<managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class> erBean </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
当然,就其中一个角色单独来看,JavaServer Faces隐藏了许多细节,若要全盘 了解,其实JavaServer Faces是复杂的,每一个处理的环境都值得深入探讨,所以学 习JavaServer Faces时,您要选择的是通盘了解,还是从使用的角度来了解,这就决 定了您学习时所要花费的心力。

JSF第10章

JSF第10章

10.3 缓存行集数据提供器
4. 用EL表达式访问缓存行集数据提供器 (3) 供表组件使用的EL表达式 <webuijsf:table ……> <webuijsf:tableRowGroup id="tableRowGroup1" sourceData="#{Page1.employeeDataProvider1}" sourceVar="currentRow"> <webuijsf:tableColumn headerText="姓名" id="tableColumn1“ sort="" width="50"> <webuijsf:textField id="textField2“ text="#{currentRow.value['']}"/> </webuijsf:tableColumn> </webuijsf:tableRowGroup> </webuijsf:table>
10.2 缓存行集
6. 保存
– acceptChanges() 向数据库发出SQL的INSERT、UPDATE和DELETE 语句,将对缓存行集的增删改转换为对数据库的增删 改。 – release() 放弃对缓存行集的所有增删改操作、清空缓存行集。 execute()方法也可以放弃对缓存行集的所有增删改 操作、清空缓存行集,同时它能从数据库读取数据、 覆盖现有的数据。
10.3 缓存行集数据提供器
4. 用EL表达式访问缓存行集数据提供器 (3) 供表组件使用的EL表达式
– 右击表组件,选择“表布局…”;指定作为表行组组件数据来 源的数据提供器(如employeeDataProvider);选定需要显 示在表中的字段;为选定的每个字段(即表列组件)指定相关设 置,包括表头文本(即列标题)、子组件的类型、与子组件绑 定的值表达式等:

JSF教程

JSF教程
1. 建立 JSP 页面,用 JSF 组件包装 HTML 元素。 2. 写一个 JavaBean 用来保持用户输入与组件数据的状态。 3. 写一个事件侦听器来决定当某事件发生时应该有什么反映,比如 用户点击了一个按钮或者提交了表单。 4. JSF 支持两个事件:ActionEvent 与 valueChangeEvent 。 ActionEvent 是针对用户提交表单与点击按钮的,而 valueChangeEvent 是当一个 JSF 组件改变了时触发。
JSF运行时分析 运行时分析
• 每当用户做任何事情,如点击按钮或者提交表单, 每当用户做任何事情,如点击按钮或者提交表单, 都有事件产生。 都有事件产生。 • 然后事件消息通过 HTTP 传到服务器上的 传到服务器上的JSF引 引 擎 • Faces servlet引擎通过分析请求,从用户的请求 引擎通过分析请求, 引擎通过分析请求 中获取JSF组件上对应的 组件上对应的Bean数据并做处理 中获取 组件上对应的 数据并做处理
JSF运行时的重要对象 运行时的重要对象
• JSP 页面包含 JSF 组件用来描述 WEB 控件,如表单、输 控件,如表单、 入框、按钮等等。组件可以嵌入另一个组件中, 入框、按钮等等。组件可以嵌入另一个组件中,正如输入框 可以在表单中。 页面就这样表示为JSF组件树。 组件树。 可以在表单中。每个 JSP 页面就这样表示为 组件树 • Managed Beans 从用户的请求中获取数据并存储 • 为了捕获组件产生的事件,需要为这个组件写一个侦听器, 为了捕获组件产生的事件,需要为这个组件写一个侦听器, 并把它注册给这个组件。 并把它注册给这个组件。通过在表示组件的客户端标签中嵌 元素能做到这一点。 入 <action_listener> 元素能做到这一点。 • 在服务器端,有一个配置了叫做 Faces servlet 的特殊 在服务器端, servlet 的 WEB 引擎容器。 引擎容器。 • 另一个重要的对象是 javax.faces.context. FacesContext, 它包括了所有关于当前用户请求的必要信息。 它包括了所有关于当前用户请求的必要信息。

第4章JSF-PPT

第4章JSF-PPT
ValueBinding: ValueBinding类中有五个方法:
public String getExpressionString():返回原始表达式字符串。 public Object getValue(FacesContext facesContext) throws PropertyNotFoundException:返回应用程序范围内的对象 public void setValue(FacesContext facesContext,Object object) throws PropertyNotFoundException:在某个应用程序范围内设置对象。 public boolean isReadOnly(FacesContext facesContext) throws PropertyNotFoundException:判断是否只读。 public Class getType(FacesContext facesContext) throws PropertyNotFoundException:返回ValueBinding所表示的对象的类型。
第一种方法基于其标识符创建一个新的Converter实例,而第二种方法则基于 其属性进行创建。我们往往使用第一种方法创建转换器实例,因为JSF会自动处 理第二种情形。Converter类有一个等于其标识符的CONVERTER_ID常数。它们 仅可以用于实现ValueHolder接口的UI组件。
求解表达式
MethodBinding类的构造方法为:
public MethodBinding(String ref,Class[ ] params);
MethodBinding类的使用 类的使用
后台Bean的代码 : 页面的主要代码: <h:form> <h:commandButton binding="#{CompBean.cmd}"/> <h:outputText binding="#{CompBean.text}"/> </h:form>

JSF入门六

JSF入门六

包括了一个应用程序所共享的信息,像是 locale 、验证器、转换器等等,您可以透过一些 工厂方法
取得相关的信息。
简单实例
在不考虑组件有子组件的情况下,这边以实际的一个例子来说明开发组件的过程,至于考虑子组件的情况请参考专书介绍。
本文档原文繁体中文版 :http://www.ja /confluence/pages/viewpa ge.acti on?pageId=2630
2007 年 7 月 27 日
JSF 入门系列简体中文版
编码, 译码
Compone nt 可以自己负责将对象数据编码为 HTML 文件或其它的输出文件,也可以将这个任务委托给 Rende re r,这边先介 绍的是让 Component 自己负责编码的动作。 这边着重的是介绍完成自定义组件所必须的流程,所以我们不设计太复杂的组件,这边将完成以下的组件,这个组件会有 一个输入文字字段以及一个送出按钮:
其中 e ncodeC hildren() 是在包括子组件时必须定义, Component 如果它的 ge tRende rsChildren() 方法传回 true 时会 呼叫 e ncodeC hildren() 方法,预设上, ge tRende rsChildre n() 方法传回 false 。 由于我们的自定义组件相当简单,所以将编码的动作写在 encode Begin() 或是 encode End() 都可以,我们这边是定义 encode Begin () 方法:
处理动作事件,并进行后端应用程序逻辑。

绘制回应(Rende r Response )
使用绘制器绘制页面。 如果您只是要「使用」JSF,则您最基本的只需要知道「执行验证」 、 「更新模型值」 、与「唤起应用程序」这三个阶段及中 间的事件触发,JSF 参考实作将这三个阶段之外的其它阶段之复杂性隐藏起来了,您不需要知道这几个阶段的处理细节。 然而如果您要自定义组件,则您还必须知道「回复画面」 、 「套用请求值」与「绘制响应」这些阶段是如何处理的,这几个 阶段相当复杂,所幸的是您可以使用 JSF 所提供的框架来进行组件自定义,JSF 提供的框架已经很大程度上降低了组件制作的 复杂性。 当然,即使 JSF 框架降低了复杂性,但实际上要处理 JSF 自定义组件还是很复杂的一件事,在尝试开发自定义组件之前, 您可以先搜寻一些网站,像是 Apache MyFaces http://m / ,看看是不是已经有相关类似的组件已经 开发完成,省去您重新自定义组件的气力。

第3章 深入使用JSF

第3章 深入使用JSF
经典Java EE课程
段鹏松
第3章 深入使用JSF
课程目标
了解JSF的事件机制 掌握JSF 的国际化文件配置 掌握JSF的类型转换 掌握JSF的校验器用法
目录
• • • • • • JSF事件机制 JSF的国际化支持 使用转换器完成类型转换 自定义转换器 使用验证器进行输入校验 自定义校验器
目录
• • • • • • JSF事件机制 JSF的国际化支持 使用转换器完成类型转换 自定义转换器 使用验证器进行输入校验 自定义校验器
JSF提供的国际化支持
• 静态内容国际化 • 错误消息国际化 • 动态数据国际化
加载国际化资源文件
• JSF同样允许使用两种国际化资源文件
– 使用*.properties国际化资源文件 – 使用*.class类文件作为国际化资源文件
– Java需要单独的监听器类,JSF只要方法签名就行
• 为了向UI组件注册事件监听器,JSF提供了如下 自定义标签:
– <f:actionListener.../> – <f:valueChangeListener.../> – <f:phaseListener.../>
JSF中事件的分类
• Action事件
浏览器 字符串
转换
后台处理 各种类型
类型转换器的分类
• 转换器(Converter)协助模型与视图之 间的数据转换。
– 标准(内置)转换器
自动类型转换
– 自定义转换器
用户手动定义转换器
使用自动类型转换器
• 使用方式
– 自动使用(当把组件的值或组件本身绑定到托 管Bean的属性时) – 通过专用标签使用
动态数据国际化

CHAPTER_10--JSF基础ppt课件

CHAPTER_10--JSF基础ppt课件
</servlet>
• 是 <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping>
2021/7/14
第一个JSF程序
JSF运用总体上包括三个部分〔三大中心组件〕: 托管Bean,进展业务处置 由JSF系列UI标签消费的运用界面,运用界面的 UI组 件直接绑定到托管Bean上 导航规那么,根据托管bean的前往值或表单 action的值呈现不同的UI界面
<html>
<head>
<title>第一个JSF程序</title> </head>
<body>
<f:view>
<h:form>
<h3>请输入您的称号</h3>
称号: <h:inputText value="#{}"/><p>
<h:commandButton value=“提交" action="login"/>
jsf基础 null 2011-06-29 15:27:0
JSF根底
•信息工程学院软件系
JSF简介
❖ JavaServer Faces (JSF) :符合JavaEE5 规范的Java Web运用框架。目的:简化开发。 ❖ JSF提供: ❖ 规范的编程接口 ❖ 丰富可扩展的组件库 ❖ 一个中心的JSP标志库用来处置事件、执 行验证以及其他非UI相关的操作〔core〕 ❖ 一个规范的HTML标志库来表示UI组件 〔html〕 2021/7/14

jsf

jsf

JSF系列教程(四) 导航规则设置[日期:2008-07-04] 来源:作者:志伟在JSF中是根据faces-config.xml中<navigation-rule>设定,以决定在符合的条件成立时,该连结至哪一个页面,一个基本的设定如下:....<navigation-rule><from-view-id>/pages/index.jsp</from-view-id><navigation-case><from-outcome>success</from-outcome><to-view-id>/pages/welcome.jsp</to-view-id></navigation-case><navigation-case><from-outcome>failure</from-outcome><to-view-id>/pages/index.jsp</to-view-id></navigation-case></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>中定义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在示例配置文件的<navigation-rule>中, 我们定义了页面流程,当请求来自<fromview- id>中指定的页面,并且指定了 <navigation-case>中的<fromoutcome>为login时,则会将请求导向至 <to-view-id>所指定的页面。接下来我们 扩充程序,让它可以根据使用者输入的名称 与密码是否正确,决定要显示欢迎讯息或是 将使用者送回原页面进行重新登入。
1.2 JSF相关介绍-JSF 体系结构
JSF 的主要优势之一就是它既是 Java Web 用户 界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。所有与应用程序的用户交互均由 一个前端“Faces Servlet(控制器)来处理。
1.2 JSF相关介绍-JSF的优势
UI组件(UI-component) 事件驱动模式 用户界面到业务逻辑的直接映射 程序员和网页设计人员的分工 请求处理生命周期的多阶段划分 全面的用户自定义支持 Web开发的官方标准之一
Java Server Faces
北京京北方科技股份有限公司 2009年3月3日
主要内容
1 2 3 4 5 6 JSF简介 JSF入门 JSF标签 JSF数据验证和转换 JSF表格 JSF与Struts的区别
1 JSF简介
1.1 什么是JSF 1.2 JSF的相关介绍 1.3 JSF示例
1.1 什么是JSF
托管 Bean
在faces-config.xml中集中管理 作用域:
application :一直存活 session :会话过程 request :请求阶段 none :需要时,临时
Beans的配置与设定
Bean的基本定义:
名称 <managed-bean-name> 类 <managed-bean-class> 存活范围 <managed-bean-scope> 见JSF示例中Bean的配置
JSF示例-UserBean.java-程序开发人员
public class UserBean { private String name; public void setName(String name) { = name; } public String getName() { return name; } }
2 JSF入门-从示例程序中掌握
2.1 JSF 表达式语言(Expression Language) 2.2 托管 Bean(Backing Bean) 2.3 JSF导航
2.1 JSF 表达式语言(EL)
搭配 JSF 标签来使用,是用来存取数据对象的一个简易语言。 以#开始,将变量或运算式放置在 { 与 } 之间。 #{} EL的变量名也可以程序执行过程中所声明的名称,或是JSF EL 预定义的隐含对象。 #{} 对于Map类型对象,可以使用 ‘.’ 运算符指定key值来取出对 应的value,也可以使用 [ 与 ] 来指定。 #{param['name']} #{someBean.someMap[]} 如果变量是List类型或阵列的话,则可以在 [] 中指定索引。 #{someBean.someList[0]}
可选设置
属性的初始值 <managed-property> <managed-property> <property-name>user</property-name> <value>#{user}</value> </managed-property>
2.3 JSF导航-Navigation
3 JSF标签
核心标签 标准标签
输出类标签 输入类标签 命令类标签 选择类标签 其他标签
JSF核心标签
view 创建顶层视图 subview 创建视图的子视图 facet 向组件添加facet param 向组件添加参数 attribute 向组件添加属性 actionListener 在父组件上注册操作监听器 valueChangeListener 向父组件注册值变更监听器 converter 注册任意转换器 convertDateTime 注册日期时间转换器 convertNumber 注册数量转换器 validateLength 验证组件值的长度 validateDoubleRange 验证组件值的双精度范围 validateLongRange 验证组件值的长整型范围 validator 向组件添加验证器 loadBundle 加载资源包 verbatim 向页面中添加标签 selectItem 指定UISelectOne或UISelectMany组件的一个项目 selectItems 指定UISelectOne或UISelectMany组件的多个项目
JSF导航-简单Navigation
接下来我们修改一下 faces-config.xml 中 的页面流程定义:
<navigation-rule> <from-view-id>/pages/index.jsp</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/pages/welcome.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>failure</from-outcome> <to-view-id>/pages/index.jsp</to-view-id> </navigation-case> </navigation-rule>
1.3 JSF示例-第一个JSF程序
现在可以开发一个简单的程序了,我们将设 计一个简单的登入程序,使用者送出名称, 之后由程序显示使用者名称及欢迎讯息。
JSF示例-index.jsp-网页设计人员
<%@taglib uri="/jsf/core" prefix="f" %> <%@taglib uri="/jsf/html" prefix="h" %> <html> <head> <title>第一个JSF程序</title> </head> <body> <f:view> <h:form> <h3>请输入您的名称</h3> 名称: <h:inputText value="#{}"/><p> <h:commandButton value=“提交" action="login"/> </h:form> </f:view> </body> </html>
Java Server Faces (JSF) :符合JavaEE5标 准的Java Web应用框架。 JSF提供:
标准的编程接口 丰富可扩展的组件库 事件驱动模型
JSF通过IDE工具支持拖放式开发。
1.2 JSF相关介绍-JSF的目标
目标
简化开发 超越现有Web框架 试图在不同的角度上提供网页设计人员、应用 程序设计人员、组件开发人员解决方案,让不 同技术的人员可以彼此合作又不互相干扰
JSF示例-welcome.jsp-网页设计人员
<%@ taglib uri="/jsf/core" prefix="f" %> <%@ taglib uri="/jsf/html" prefix="h" %> <%@page contentType="text/html;charset=Big5"%> <html> <head> <title&g; <body> <f:view> <h:outputText value=“#{}”/> 您好! <h3>欢迎使用 JavaServer Faces!</h3> </f:view> </body> </html>
JSF导航-简单Navigation
首先我们修改一下UserBean中的方法:
private String name; private String password; private String errMessage; public String verify() { if(!name.equals("justin") || !password.equals("123456")) { errMessage = "名称或密码错误"; return "failure"; } else { return "success"; } }
JSF示例-faces-config.xml-程序开发人员
<faces-config> <navigation-rule> <from-view-id>/pages/index.jsp</from-view-id> <navigation-case> <from-outcome>login</from-outcome> <to-view-id>/pages/welcome.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class>erBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
相关文档
最新文档