深入使用JSF主题知识讲座_第1页
深入使用JSF主题知识讲座_第2页
深入使用JSF主题知识讲座_第3页
深入使用JSF主题知识讲座_第4页
深入使用JSF主题知识讲座_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

经典JavaEE课程段鹏松深入使用JSF主题知识讲座第1页第3章深入使用JSF了解JSF事件机制掌握JSF国际化文件配置掌握JSF类型转换掌握JSF校验器使用方法课程目标深入使用JSF主题知识讲座第2页目录JSF事件机制JSF国际化支持使用转换器完成类型转换自定义转换器使用验证器进行输入校验自定义校验器深入使用JSF主题知识讲座第3页JSF事件机制概述JSF本质上是基于MVC框架,它不再是传统基于请求/响应MVC框架。JSFUI组件能够激发事件,开发者负责为这些事件实现监听器,并将这些监听器绑定到UI组件上即可。JSF不但能够采取托管Bean方法来处理事件,也能够采取专门监听器类来处理事件。深入使用JSF主题知识讲座第4页Java事件模型实现事件监听器是整个事件处理关键深入使用JSF主题知识讲座第5页JSF事件模型和Java事件模型基本相同,由三部分组成事件源:全部UI组件事件对象:执行动作时创建对象事件监听器:用托管Bean或专门事件监听器对象深入使用JSF主题知识讲座第6页JSF事件类使用方法JSF事件机制则采取自定义标签、配置文件方式来注册事件监听器。JSF事件机制和Java事件机制一个显著区分:Java需要单独监听器类,JSF只要方法署名就行为了向UI组件注册事件监听器,JSF提供了以下自定义标签:<f:actionListener.../><f:valueChangeListener.../><f:phaseListener.../>深入使用JSF主题知识讲座第7页JSF中事件分类Action事件javax.faces.event.ActionEvent实际操作演示值改变事件javax.faces.event.ValueChangeEvent实际操作演示生命周期事件javax.faces.event.PhaseEvent三种注册方式实际操作演示深入使用JSF主题知识讲座第8页Jsf事件小结Action事件、ValueChange事件、Phase事件都有两种配置方式:在UI标签中直接配置,在托管bean中定义对应执行方法使用<f:…listener>标签配置,使用type属性连接到对应监听器类深入使用JSF主题知识讲座第9页将监听器绑定到Bean属性将监听器绑定到Bean属性与将UI组件本身绑定到Bean属性功效基本相同,它们都需要定义一个组件属性来代表监听器、UI组件本身。本质还是定义监听器类。实际操作演示深入使用JSF主题知识讲座第10页目录JSF事件机制JSF国际化支持使用转换器完成类型转换自定义转换器使用验证器进行输入校验自定义校验器深入使用JSF主题知识讲座第11页JSF提供国际化支持

静态内容国际化错误消息国际化动态数据国际化深入使用JSF主题知识讲座第12页加载国际化资源文件JSF一样允许使用两种国际化资源文件使用*.properties国际化资源文件使用*.class类文件作为国际化资源文件JSF提供了两种加载国际化资源文件方法在face-config.xml文件<application../>元素中用<resource-bundle.../>子元素注册在JSF页面中使用<f:loadBundle.../>标签来加载国际化资源文件深入使用JSF主题知识讲座第13页使用国际化资源文件经过值表示式访问资源文件中Key,来使用国际化文件资源。格式:#{国际化文件别名.key}。JSF还允许经过<f:view.../>指定使用何种locale来展现页面。深入使用JSF主题知识讲座第14页动态数据国际化

是指对服务器端对象所加载数据国际化。最常见情形就是让托管Bean加载国际化资源文件。ResourceBundle类使用。实际操作演示深入使用JSF主题知识讲座第15页代码示例//使用ResourceBundle来加载国际化消息资源ResourceBundlerb=ResourceBundle.getBundle( "global",fc.getViewRoot().getLocale());……ec.getSessionMap().put("tip“,rb.getString("wrong"));深入使用JSF主题知识讲座第16页让用户选择语言经过下拉菜单让用户选择语言实际操作演示深入使用JSF主题知识讲座第17页代码示例(后台方式)<f:view><html><head><title>JSPPage</title></head><body><!--加载国际化资源文件,加载后可经过local变量访问它--><f:loadBundlebasename="local"var="local"/><h:form><!--经过下拉菜单来选择语言/国家环境--><h:selectOneMenuvalue="#{localeBean.locale}"valueChangeListener="#{localeBean.choose}"onchange="this.form.submit();"immediate="true"><f:selectItemitemValue="zh_CN"itemLabel="#{global.zh_CNText}"/><f:selectItemitemValue="en_US"itemLabel="#{global.en_USText}"/></h:selectOneMenu></h:form></html></f:view> publicvoidchoose(ValueChangeEventvce) { //将用户选择值作为当前locale,比如:en_US this.locale=(String)vce.getNewValue();String[]ss=this.locale.split("_");LocalechooseLocale=newLocale(ss[0],ss[1]);FacesContext.getCurrentInstance().getViewRoot().setLocale(chooseLocale); }深入使用JSF主题知识讲座第18页目录JSF事件机制JSF国际化支持使用转换器完成类型转换自定义转换器使用验证器进行输入校验自定义校验器深入使用JSF主题知识讲座第19页类型转换器概述由浏览器传送数据基本上都是字符串,而Java应用程序本身基本上则是对象,所以对象数据必须转换后传送给浏览器,而浏览器送来数据也必须转换为对象才能使用。浏览器字符串后台处理各种类型转换深入使用JSF主题知识讲座第20页类型转换器分类转换器(Converter)帮助模型与视图之间数据转换。标准(内置)转换器自动类型转换自定义转换器用户手动定义转换器深入使用JSF主题知识讲座第21页使用自动类型转换器使用方式自动使用(当把组件值或组件本身绑定到托管Bean属性时)经过专用标签使用实际操作演示自动转换成功转换失败后错误信息深入使用JSF主题知识讲座第22页•UserBean.javapackagecom.tata;importjava.util.Date;publicclassUserBean{privateDatedate=newDate();publicDategetDate(){ returndate;}publicvoidsetDate(Datedate){ this.date=date;}}使用自动类型转换器•index.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@tagliburi="/jsf/core"prefix="f"%><%@tagliburi="/jsf/html"prefix="h"%><html> <head><title>转换器示范</title></head><body><f:view>设定日期是:<b><h:outputTextvalue="#{user.date}">

<f:convertDateTimepattern="dd/MM/yyyy"/></h:outputText></b><h:form><h:inputTextid="dateField"value="#{user.date}">

<f:convertDateTimepattern="dd/MM/yyyy"/></h:inputText><h:messagefor="dateField"style="color:red"/><br><h:commandButtonvalue="送出"action="show"/></h:form></f:view></body></html>深入使用JSF主题知识讲座第23页JSF转换失败后错误提醒错误消息可来自3个方面来自JSF为内置转换器、校验器提供默认消息。来自开发者经过自定义消息资源文件提供错误消息。来自各UI组件标签converterMessage属性指定错误消息。开发者可依据需要修改为自己想要信息深入使用JSF主题知识讲座第24页目录JSF事件机制JSF国际化支持使用转换器完成类型转换自定义转换器使用验证器进行输入校验自定义校验器深入使用JSF主题知识讲座第25页自定义类型转换器实现类型转换器类实现Converter接口注册转换器在faces-config.xml中注册使用自定义转换器使用标签<f:converter.../>经过UI组件converter属性来引用绑定到Bean属性转换器实际操作演示深入使用JSF主题知识讲座第26页转换器代码示例深入使用JSF主题知识讲座第27页转换器注册全局转换使用时需引入深入使用JSF主题知识讲座第28页演示界面深入使用JSF主题知识讲座第29页目录JSF事件机制JSF国际化支持使用转换器完成类型转换自定义转换器使用验证器进行输入校验自定义校验器深入使用JSF主题知识讲座第30页校验器概述对异常输入过滤,就是输入校验。输入校验是全部Web应用必须处理问题。从逻辑上Web校验分类客户端校验服务端校验深入使用JSF主题知识讲座第31页JSF中校验器分类校验器(Validator)分类标准验证器自定义验证器标准校验器即JSF内置校验器深入使用JSF主题知识讲座第32页标准输入校验当应用程序要求用户输入数据时,必定要验证输入数据正确性。必要两种验证是:语法检验(SyntaxValidation):检验用户输入数据是否合乎我们所要求格式。(包含:是否填入了值,或值长度、大小是否符合要求等等。)语意检验(SemanticValidation):在语法检验之后,深入验证输入数据语意上是否正确。(比如检验使用者名称与密码是否匹配。)深入使用JSF主题知识讲座第33页标准输入校验•index.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@tagliburi="/jsf/core"prefix="f"%><%@tagliburi="/jsf/html"prefix="h"%><html><head><title>验证器示范</title></head><body><f:view><h:messageslayout="table"style="color:red"/><h:form><h3>请输入您名称</h3><h:outputTextvalue="#{user.errMessage}"/><p>名称:<h:inputTextvalue="#{}"required="true"/><p>密码:<h:inputSecretvalue="#{user.password}"required="true"><f:validateLengthminimum="6"/></h:inputSecret><p><h:commandBut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论