版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java Server Faces北京京北方科技股份2021年3月3日主要内容1 JSF简介2 JSF入门3 JSF标签4 JSF数据验证和转换5 JSF表格6 JSF与Struts的区别1 JSF简介1.1 什么是JSF1.2 JSF的相关引见1.3 JSF例如1.1 什么是JSFJava Server Faces (JSF) :符合JavaEE5规范的Java Web运用框架。JSF提供:规范的编程接口丰富可扩展的组件库事件驱动模型JSF经过IDE工具支持拖放式开发。 1.2 JSF相关引见-JSF的目的目的简化开发超越现有Web框架试图在不同的角度上提供网页设计人员、运用程序设计人员、组
2、件开发人员处理方案,让不同技术的人员可以彼此协作又不相互关扰1.2 JSF相关引见-JSF 体系构造 JSF 的主要优势之一就是它既是 Java Web 用户界面规范又是严厉遵照模型-视图控制器 (MVC) 设计方式的框架。一切与运用程序的用户交互均由一个前端“Faces Servlet控制器来处置。 1.2 JSF相关引见-JSF的优势UI组件UI-component 事件驱动方式用户界面到业务逻辑的直接映射 程序员和网页设计人员的分工 恳求处置生命周期的多阶段划分 全面的用户自定义支持 Web开发的官方规范之一1.3 JSF例如-第一个JSF程序如今可以开发一个简单的程序了,我们将设计一个
3、简单的登入程序,运用者送知称号,之后由程序显示运用者称号及欢迎讯息。 JSF例如-index.jsp-网页设计人员 第一个JSF程序 请输入您的称号 称号: JSF例如-UserBean.java-程序开发人员 public class UserBean private String name; public void setName(String name) = name; public String getName() return name; JSF例如-faces-config.xml-程序开发人员 /pages/index.jsp login /pages/welcome.jsp u
4、ser net.UserBean session JSF例如-welcome.jsp-网页设计人员 第一个JSF程序 您好! 欢迎运用 JavaServer Faces! 2 JSF入门-从例如程序中掌握2.1 JSF 表达式言语Expression Language 2.2 托管 BeanBacking Bean2.3 JSF导航2.1 JSF 表达式言语EL 搭配 JSF 标签来运用,是用来存取数据对象的一个简易言语。 以#开场,将变量或运算式放置在 与 之间。#userBEL的变量名也可以程序执行过程中所声明的称号,或是JSF EL预定义的隐含对象。#对于Map类型对象,可以运用 . 运
5、算符指定key值来取出对应的value,也可以运用 与 来指定。#paramname #someBean.someMap 假设变量是List类型或阵列的话,那么可以在 中指定索引。#someBean.someList0 2.2 托管 Bean JSF 运用 Bean 来到达逻辑层与表现层分别的目的,Bean 的管理集中在配置文件中,只需修正配置文件,就可以修正 Bean 之间的相依关系。 Backing Bean:在真正的业务逻辑Bean及UI组件之间搭起桥梁,在Backing Bean中会呼叫业务逻辑Bean处置运用者的恳求,或者是将业务处置结果放置其中,等待UI组件取出当中的值并显示结果给
6、运用者。 托管 Bean在faces-config.xml中集中管理作用域:application :不断存活session :会话过程request :恳求阶段none :需求时,暂时Beans的配置与设定Bean的根本定义:称号 类 存活范围 见JSF例如中Bean的配置可选设置属性的初始值 user #user 2.3 JSF导航-Navigation 在例如配置文件的中,我们定义了页面流程,当恳求来自中指定的页面,并且指定了中的为login时,那么会将恳求导向至所指定的页面。接下来我们扩展程序,让它可以根据运用者输入的称号与密码能否正确,决议要显示欢迎讯息或是将运用者送回原页面进展重新
7、登入。 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导航-简单Navigation接下来我们修正一下 faces-config.xml 中的页面流
8、程定义: /pages/index.jsp success /pages/welcome.jsp failure /pages/index.jsp JSF导航-简单Navigation接下来通知网页设计人员Bean称号与相关属性,以及决议页面流程的verify称号,我们修正 index.jsp 如下: 请输入您的称号 称号: 密码: 3 JSF标签中心标签规范标签输出类标签输入类标签命令类标签选择类标签其他标签JSF中心标签view 创建顶层视图 subview 创建视图的子视图 facet 向组件添加facet param 向组件添加参数 attribute 向组件添加属性 actionLi
9、stener 在父组件上注册操作监听器 valueChangeListener 向父组件注册值变卦监听器 converter 注册恣意转换器 convertDateTime 注册日期时间转换器 convertNumber 注册数量转换器 validateLength 验证组件值的长度 validateDoubleRange 验证组件值的双精度范围 validateLongRange 验证组件值的长整型范围 validator 向组件添加验证器 loadBundle 加载资源包 verbatim 向页面中添加标签 selectItem 指定UISelectOne或UISelectMany组件的一
10、个工程 selectItems 指定UISelectOne或UISelectMany组件的多个工程 JSF规范标签输出Outputs 其称号以output作为开头,作用为输出指定的信息或绑定值。输入Inputs 其称号以input作为开头,其作用为提供运用者输入框。命令Commands 其称号以command作为开头,其作用为提供命令或链接按钮。选择Selections 其称号以select作为开头,其作用为提供运用者选项的选取。其它 包括了form、message、graphicImage等等未分类的标签。 规范HTML标签的属性属性名称适用说明id所有组件可指定id名称,以让其它标签或组件
11、参考binding所有组件绑定至UIComponentrendered所有组件是否显示组件 styleClass所有组件设定Cascading stylesheet(CSS)value输入、输出、命令组件设定值或绑定至指定的值valueChangeListener输入组件设定值变事件处理者converter输入、输出组件设定转换器validator输入组件设定验证器 required输入组件是否验证必填输入框 immediate输入、命令组件是否为即时事件输出类标签outputLabel产生 HTML标签,运用for属性指定组件的client ID,例如:outputLink产生 HTML标签
12、,搭配可帮链结加上参数,一切的参数都会变成 name=value 的类型附加在链接后,value所指定的内容也可以是JSF EL绑定。例如: outputText简单的显示指定的值或绑定的信息,例如: 输入类标签inputText显示单行输入框,即输出 HTML标签,其type属性设定为text,例如: inputTextarea显示多行输入文字区域,即输出 HTML标签,例如: inputSecret显示密码输入框,即输出 HTML标签,其type属性设定为password,例如: inputHidden隐藏输入框,即输出 HTML标签,其type属性设定为hidden,隐藏输入框的值用于保
13、管一些信息于客户端,以在下一次发送表单时一并提交,例如: 命令类标签commandButton显示一个命令按钮,即输出 HTML标签,其type属性可以设定为button、submit或reset,预设是submit,按下按钮会触发 javax.faces.event. ActionEvent,例如: commandLink产生超链接,会输出 HTML标签,而href属性会有#,而onclick属性会含有一段JavaScript程序,这个JavaScript的目的是按下链接后自动提交表单,详细来说其作用就像按钮,但外观却是超链接,例如: 选择类标签 选取框单项选择单项选择按钮单项选择列表单项选
14、择菜单复选复选框复选列表复选菜单选择类标签的选项itemLabelitemValue 或者value绑定一个传回javax.faces. model.SelectItem的方法 value绑定至一个提供传回SelectItem的列表数组的方法 SelectItem: value, labelvalue绑定至一个提供传回Map对象的方法Map : label, value其他标签 图片 排版本体间只能包括JSF组件,假设想要放入非JSF组件,例如简单的样版template文字,那么要运用 包括住。 包装组件4 JSF数据转换与验证-表单中运用 4.1 转换器Converter协助模型与视图之 间
15、的数据转换4.2 验证器Validator协助进展语意检验Semantic Validation4.1 规范转换器HTTP字符串 Java对象对于根本数据类型primitive typeJSF会运用javax.faces.Boolean、javax.faces.Byte等自动进展转换对于 BigDecimal、BigInteger,那么会运用javax. faces.BigDecimal、javax.faces.BigInteger自动进展转换对于DateTime、Number,可以运用、标签进展转换,它们各自提供有一些简单的属性,可以让我们在转换时指定一些转换的格式细节: 4.1 自定义转换
16、器 实现javax.faces.convert.Converter接口,这个接口有两个要实现的方法:public Object getAsObject(FacesContext context, UIComponent component, String str); public String getAsString(FacesContext context, UIComponent component, Object obj); 在faces-config.xml中注册: cn.wiztek.converter.User cn.wiztek.converter.UserConverter 在
17、JSF页面中经过converter-id运用转换器: 4.2 规范验证器 语法检验Synatic Validation 检查运用者输入的数据能否符合我们所要求的格式,最根本的就是检查运用者能否填入了栏目值,或是栏目值的长度、大小值等等能否符合要求。三种规范验证器: 4.2 自定义验证器 实现javax.faces.validator.Validator接口中的validate()方法,假设验证错误,那么丢出一个ValidatorException,它接受一个FacesMessage对象,这个对象接受三个参数,分别表示信息的严重程度INFO、 WARN、ERROR、FATAL、信息概述与详细信息
18、内容,这些信息将可以运用或标签显示在页面上。 在faces-config.xml中注册验证器的标识Validater ID。经过标签并设定validatorId属性来运用自定义验证器。 错误信息处置 预定义的错误信息可以运用或标签显示出来经过提供一个信息资源文件可以修正预定义的错误信息MyFaces提供了支持中文的错误信息文件Messages_zh_CN.properties 也可以在程序中运用FacesMessage来提供信息 5 JSF表格处置配合来以表格的方式显示数据,中只能包括 JSF组件或者是,JSF支持两种facet:header与footer。分别用以设定表格的表头与表尾文字,下
19、面我们来实现一个简单表格的例子。 5 JSF表格例如 JSF表格数据设定public class TableBean private List userList; public List getUserList() if(userList = null) userList = new ArrayList(); userList.add(new UserBean(caterpillar, 123456); userList.add(new UserBean(momor, 654321); userList.add(new UserBean(becky, 7890); return userLis
20、t; JSF表格款式另外,对于表头、表尾仍至于每一行列,都可以分别设定CSS风格 6 JSF与Struts的一样和区别 一样点: 听说JSF的主要担任人就是struts的主要作者,所以二者的类似点还是有很多的。都采用taglib来处置表示层:在jsp页面中,二者都是采用一套标志库来处置页面的表示和model层的交互。二者都采用了bean来作为和jsp页面对应的model层。该model层保管了jsp页面上的数据,同时可以作一些验证任务,在struts中就是FormBean,在JSF中就是back bean.都采用bean作为控制层,Struts中采用ActionBean来处置业务逻辑,对于简单
21、的运用可以直接在ActionBean中编写业务逻辑代码,也可以调用另外的bean或者EJB来处置业务逻辑;对于JSF那么采用backing bean来处置业务逻辑,同样,backing bean也可以直接编写业务逻辑或者调用其他的bean来处置业务逻辑。都采用xml配置文件来处置bean的配置,页面导航等问题,添加了系统的灵敏性。 下面主要引见下几个区别:二者的偏重点不同 Struts偏重于控制层,偏重于如何分派和处置用户的恳求,所以表示层的taglib功能不够强大。而JSF那么偏重于表示层,实现了大量的规范组件,允许开发人员对表示层有更多的控制权,同时JSF实现了一个开放的架构,允许开发人员
22、创建本人的组件,或者在现有的组件上承继,开发功能更强大的组件。 和jsp 对应的model层 在Struts中,jsp和FormBean是严密结合在一同的,只需写一个 jsp就必需对应一个FormBean,同时jsp上的每个组件都对应FormBean中一样名字的字段。这里不太灵敏,比如,开发页面的时候就必需思索后台的FormBean的实现,但此时假设该页面没有FormBean的话那么程序运转时会出错。在JSF中,JSP页面中的组件经过value属性和backing bean的字段关联,这样就有比较大的灵敏性,页面上的每个组件可以对应一样的backing bean,也可以对应不同的backing
23、 bean,而且在设计页面的时候可以不思索backing bean如何设计,可以在设计完页面之后再思索backing bean的实现问题。关于数据验证 Struts可以采用在FormBean中的验证函数中进展验证,也可以运用validator进展验证。在JSF中,提供了一些规范的validator.可以对输入的数据做一些简单的验证,例如验证数值数据的范围,字段能否必填等。另外对于input类型的组件可以经过validator属性关联到backing bean的一个验证方法上。控制层 Struts 中经过form的action来提交恳求,经过ActionServlet来分发恳求,最后由ActionBean来处置恳求,在Acti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产车间消防演练
- 气象学教师劳动合同样本
- 无人驾驶技术董事聘用合同
- 本溪市供热环保政策实施
- 经济适用房交易附加协议
- 畜牧业会计聘用合同样本
- 停车场绿化工程合同
- 商务楼宇电梯安全运行规范
- 采矿技术人员培训课件
- 校园文明礼貌教育活动
- 朝鲜战争完整版本
- 动漫制作专业职业生涯规划书
- 2023年国家公务员考试申论试题(行政执法卷)及参考答案
- 殡葬专业职业生涯规划与管理
- QGDW11957.2-2020国家电网有限公司电力建设安全工作规程 第2部分:线路
- 中国抗日战争史智慧树知到课后章节答案2023年下浙江大学
- 轨道工程(第三版) 课件 高亮第6章 道岔
- 深圳市建设工程消防设计疑难解析(2023年)
- 特仑苏广告效果调查报告
- 机动车检测站事故隐患排查治理体系作业指导书
- 2022年12月英语四级真题试卷第1套(含答案解析)
评论
0/150
提交评论