您好,欢迎访问三七文档
JavaServerFaces北京京北方科技股份有限公司2009年3月3日主要内容1JSF简介2JSF入门3JSF标签4JSF数据验证和转换5JSF表格6JSF与Struts的区别1JSF简介1.1什么是JSF1.2JSF的相关介绍1.3JSF示例1.1什么是JSFJavaServerFaces(JSF):符合JavaEE5标准的JavaWeb应用框架。JSF提供:标准的编程接口丰富可扩展的组件库事件驱动模型JSF通过IDE工具支持拖放式开发。1.2JSF相关介绍-JSF的目标目标简化开发超越现有Web框架试图在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰1.2JSF相关介绍-JSF体系结构JSF的主要优势之一就是它既是JavaWeb用户界面标准又是严格遵循模型-视图-控制器(MVC)设计模式的框架。所有与应用程序的用户交互均由一个前端“FacesServlet(控制器)来处理。1.2JSF相关介绍-JSF的优势UI组件(UI-component)事件驱动模式用户界面到业务逻辑的直接映射程序员和网页设计人员的分工请求处理生命周期的多阶段划分全面的用户自定义支持Web开发的官方标准之一1.3JSF示例-第一个JSF程序现在可以开发一个简单的程序了,我们将设计一个简单的登入程序,使用者送出名称,之后由程序显示使用者名称及欢迎讯息。JSF示例-index.jsp-网页设计人员%@tagliburi==f%%@tagliburi==h%htmlheadtitle第一个JSF程序/title/headbodyf:viewh:formh3请输入您的名称/h3名称:h:inputTextvalue=#{user.name}/ph:commandButtonvalue=“提交action=login//h:form/f:view/body/htmlJSF示例-UserBean.java-程序开发人员publicclassUserBean{privateStringname;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}}JSF示例-faces-config.xml-程序开发人员faces-confignavigation-rulefrom-view-id/pages/index.jsp/from-view-idnavigation-casefrom-outcomelogin/from-outcometo-view-id/pages/welcome.jsp/to-view-id/navigation-case/navigation-rulemanaged-beanmanaged-bean-nameuser/managed-bean-namemanaged-bean-classnet.UserBean/managed-bean-classmanaged-bean-scopesession/managed-bean-scope/managed-bean/faces-configJSF示例-welcome.jsp-网页设计人员%@tagliburi==f%%@tagliburi==h%%@pagecontentType=text/html;charset=Big5%htmlheadtitle第一个JSF程序/title/headbodyf:viewh:outputTextvalue=“#{user.name}”/您好!h3欢迎使用JavaServerFaces!/h3/f:view/body/html2JSF入门-从示例程序中掌握2.1JSF表达式语言(ExpressionLanguage)2.2托管Bean(BackingBean)2.3JSF导航2.1JSF表达式语言(EL)搭配JSF标签来使用,是用来存取数据对象的一个简易语言。以#开始,将变量或运算式放置在{与}之间。#{userBean.name}EL的变量名也可以程序执行过程中所声明的名称,或是JSFEL预定义的隐含对象。#{param.name}对于Map类型对象,可以使用‘.’运算符指定key值来取出对应的value,也可以使用[与]来指定。#{param['name']}#{someBean.someMap[user.name]}如果变量是List类型或阵列的话,则可以在[]中指定索引。#{someBean.someList[0]}2.2托管BeanJSF使用Bean来达到逻辑层与表现层分离的目的,Bean的管理集中在配置文件中,只要修改配置文件,就可以修改Bean之间的相依关系。BackingBean:在真正的业务逻辑Bean及UI组件之间搭起桥梁,在BackingBean中会呼叫业务逻辑Bean处理使用者的请求,或者是将业务处理结果放置其中,等待UI组件取出当中的值并显示结果给使用者。托管Bean在faces-config.xml中集中管理作用域:application:一直存活session:会话过程request:请求阶段none:需要时,临时Beans的配置与设定Bean的基本定义:名称managed-bean-name类managed-bean-class存活范围managed-bean-scope见JSF示例中Bean的配置可选设置属性的初始值managed-propertymanaged-propertyproperty-nameuser/property-namevalue#{user}/value/managed-property2.3JSF导航-Navigation在示例配置文件的navigation-rule中,我们定义了页面流程,当请求来自from-view-id中指定的页面,并且指定了navigation-case中的from-outcome为login时,则会将请求导向至to-view-id所指定的页面。接下来我们扩充程序,让它可以根据使用者输入的名称与密码是否正确,决定要显示欢迎讯息或是将使用者送回原页面进行重新登入。JSF导航-简单Navigation首先我们修改一下UserBean中的方法:privateStringname;privateStringpassword;privateStringerrMessage;publicStringverify(){if(!name.equals(justin)||!password.equals(123456)){errMessage=名称或密码错误;returnfailure;}else{returnsuccess;}}JSF导航-简单Navigation接下来我们修改一下faces-config.xml中的页面流程定义:navigation-rulefrom-view-id/pages/index.jsp/from-view-idnavigation-casefrom-outcomesuccess/from-outcometo-view-id/pages/welcome.jsp/to-view-id/navigation-casenavigation-casefrom-outcomefailure/from-outcometo-view-id/pages/index.jsp/to-view-id/navigation-case/navigation-ruleJSF导航-简单Navigation接下来告诉网页设计人员Bean名称与相关属性,以及决定页面流程的verify名称,我们修改index.jsp如下:f:viewh:formh3请输入您的名称/h3h:outputTextvalue=#{user.errMessage}/p名称:h:inputTextvalue=#{user.name}/p密码:h:inputSecretvalue=#{user.password}/ph:commandButtonvalue=送出action=#{user.verify}//h:form/f:view3JSF标签核心标签标准标签输出类标签输入类标签命令类标签选择类标签其他标签JSF核心标签view创建顶层视图subview创建视图的子视图facet向组件添加facetparam向组件添加参数attribute向组件添加属性actionListener在父组件上注册操作监听器valueChangeListener向父组件注册值变更监听器converter注册任意转换器convertDateTime注册日期时间转换器convertNumber注册数量转换器validateLength验证组件值的长度validateDoubleRange验证组件值的双精度范围validateLongRange验证组件值的长整型范围validator向组件添加验证器loadBundle加载资源包verbatim向页面中添加标签selectItem指定UISelectOne或UISelectMany组件的一个项目selectItems指定UISelectOne或UISelectMany组件的多个项目JSF标准标签输出(Outputs)其名称以output作为开头,作用为输出指定的信息或绑定值。输入(Inputs)其名称以input作为开头,其作用为提供使用者输入框。命令(Commands)其名称以command作为开头,其作用为提供命令或链接按钮。选择(Selections)其名称以select作为开头,其作用为提供使用者选项的选取。其它包括了form、message、graphicImage等等未分类的标签。标准HTML标签的属性属性名称适用说明id所有组件可指定id名称,以让其它标签或组件参考binding所有组件绑定至UIComponentrendered所有组件是否显示组件styleClass所有组件设定Cascadingstylesheet(CSS)value输入、输出、命令组件设定值或绑定至指定的值valueChangeListener输入组件设定值变事件处理者converter输入、输出组件设定转换器validator输入组件设定验证器required输入组件是否验证必填输入框immediate输入、命令组件是否为即时事件输出类标签outputLabel产生labelHTML标签,使用for属性指定组件的clientID,例如:h:inputTextid=uservalue=#{user.name}/h:outputLabelfor=uservalue=#{user.name}/outputLink产生aHTML标签,搭配f:param可帮链结加上参数,所有的参数都会变成name=value的类型附加在链接后,value所指定的内容也可以是JSFEL绑定。例如:h:outputLinkvalue=“../index.jsp”h:out
本文标题:JSF培训教程
链接地址:https://www.777doc.com/doc-2879398 .html