付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章使用JavaServerFaces2回顾@TestpublicvoidfindPersons()throwsException{javax.persistence.EntityManagerem=emf.createEntityManager();Listp=(List)em.createQuery("selectpfromP!=:name").setParameter("name","董").getResultList();assertEquals(p.size(),2);assertEquals(p.get(0).getName(),"张");assertEquals(p.get(1).getName(),"李");}…JPA-QL语法错误没有使用泛型3本章任务使用JSF实现:Web猜数应用程序4了解JSF基本原理学会使用JSF完成Web应用开发本章目标5回顾Struts框架Struts的编程模型ActionServletJSPJavaBean[Add]ActionAddForm,ActionMapping123456开发时只需关注:两个核心组件:ActionForm[Add]Action一个配置文件1﹑页面提交的数据封装到ActionForm中2﹑通过请求路径查找Struts-config.xml中Action的配置,找到并调用对应的Action查找ActionMapping,找到正确的JSP页面,并转发Controller(控制器)Model(模型)View(视图)数据库6为什么需要JSF?Struts虽然为事实上的JavaWeb应用框架,但不支持基于组件的事件驱动的开发模式。Struts是一个开源的代码框架,不是JavaWeb框架标准。JSF为JavaEE中的Web组件的开发规范,拥有多种实现(SunJSFRI,MyFaces,ICEFaces…)。7JSF的优点用户界面组件事件驱动模型通过使用Renderer灵活地表示用户界面很容易与各种工具集成,如NetBeans和Eclipse等8JSF体系结构_1FacesServletJSF页面客户端Web容器数据库控制器视图模型9JSF体系结构_2web.xml中如下配置Sun的JSFRI…<servlet><servlet-name>FacesServlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><!--FacesServletMapping--><servlet-mapping><servlet-name>FacesServlet</servlet-name><url-pattern>/guess/*</url-pattern></servlet-mapping>…web.xml使用其他JSF实现时,配置不一样!10JSF的编程模型FacesServletJSF页面业务逻辑ManagedBean123456开发时只需关注:ManagedBean业务逻辑对象JSF页面一个配置文件1﹑页面提交的数据绑定到ManagedBean中2﹑页面的事件绑定到ManagedBean的方法3﹑ManagedBean调用业务逻辑对象Controller(控制器)Model(模型)View(视图),可以呈现为HTML到客户端数据库11JSF的页面组件_1<h2>Hi.MynameisDuke.I'mthinkingofanumberfrom<h:outputTextlang="en_US"value="#{UserNumberBean.minimum}"/>to<h:outputTextvalue="#{UserNumberBean.maximum}"/>.Canyouguessit?</h2><h:graphicImageid="waveImg"url="/wave.med.gif"/><h:inputTextid="userNo"label="UserNumber“value="#{UserNumberBean.userNumber}"/><mandButtonid="submit"action="success"value="Submit"/>
greeting.jsp基于组件的页面开发,类似的Binding!greeting.jsp12JSF的页面组件_2<f:view><h:formid="helloForm"><h:outputTextlang="en_US“…/><h:inputTextid="userNo"…/><mandButtonid=“submit”…/></h:form></f:view>…greeting.jsp页面组件按照层次构成一个组件树!视图的根<f:view><h:form><mandButton>13JSF支持简单的Bean模型_1publicclassUserNumberBean{publicvoidsetUserNumber(Integeruser_number){userNumber=user_number;…}publicIntegergetUserNumber(){…returnuserNumber;}UserNumberBean.java<managed-bean><managed-bean-name>UserNumberBean</managed-bean-name><managed-bean-class>guessNumber.UserNumberBean</managed-bean-class><managed-bean-scope>session</managed-bean-scope><managed-property>…</managed-property>…</managed-bean>faces-config.xml14JSF支持简单的Bean模型_2publicclassUserNumberBean{privateintmaximum=0;publicintgetMaximum(){return(this.maximum);}publicvoidsetMaximum(intmaximum){this.maximum=maximum;this.maximumSet=true;}…UserNumberBean.java<managed-bean-name>UserNumberBean</managed-bean-name>...<managed-property><property-name>maximum</property-name><property-class>int</property-class><value>10</value></managed-property>…faces-config.xml属性的getter/setter方法15JSF的页面导航模型_1<h:inputTextid="userNo"label="UserNumber"value="#{UserNumberBean.userNumber}"/><mandButtonid="submit"action="success"value="Submit"/>
greeting.jsp<h:outputTextid="result"lang="en”value="#{UserNumberBean.response}"/><mandButtonid="back"value="Back"action="success"/>response.jsp16JSF的页面导航模型_2<h:inputTextid="userNo"label="UserNumber"value="#{UserNumberBean.userNumber}"/><mandButtonid="submit"action="success"value="Submit"/>
greeting.jsp<h:outputTextid="result"lang="en”value="#{UserNumberBean.response}"/><mandButtonid="back"value="Back"action="success"/>response.jsp17JSF的页面导航模型_3<navigation-rule><from-view-id>/greeting.jsp</from-view-id><navigation-case><e>success</e><to-view-id>/response.jsp</to-view-id></navigation-case></navigation-rule>
<navigation-rule><from-view-id>/response.jsp</from-view-id><navigation-case><e>success</e><to-view-id>/greeting.jsp</to-view-id></navigation-case></navigation-rule>faces-config.xml比Struts简洁18JSF的页面验证模型_1<h:formid="helloForm"><h:inputTextid="userNo"label="UserNumber“value="#{UserNumberBean.userNumber}”validator="#{UserNumberBean.validate}"/>greeting.jsp输入验证失败!19JSF的页面验证模型_2publicvoidvalidate(FacesContextcontext,ponentcomponent,Objectvalue)throwsValidatorException{…thrownewValidatorException(MessageFactory.getMessage…UserNumberBean.java输入验证失败!UserNumberB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全职业技术学院单招职业技能考试题库含答案详解(培优A卷)
- 船模车模航模社团教学计划
- 2025年万福河职业学院单招综合素质考试题库附完整答案详解(全优)
- 2026年山东曹县职业学院高职单招职业技能考试模拟试卷【新题速递】附答案详解
- 2025年西安健康工程职业学院单招职业技能考试题库(轻巧夺冠)附答案详解
- 机房空调施工方案
- 2025年山东茌平职业学院高职单招职业技能考试模拟试卷附完整答案详解(夺冠系列)
- 2027年湖南衡阳技师学院单招职业技能考试模拟试卷附参考答案详解(培优)
- 2024年山东莒县职业学院高职单招职业技能考试题库【A卷】附答案详解
- 2024年河北深州职业学院高职单招职业技能考试题库完整版附答案详解
- 2026年河北考试物理试卷及答案
- 2026海南天然橡胶产业集团股份有限公司二级企业正副职储备人员招聘笔试参考题库及答案详解
- (正式版)T∕IAMAC 001-2025 保险资产管理行业数据分类分级指南
- 2026农作物植保员学习备考复习题库(新版)
- JJF 2241-2025 电子停车计时收费表校准规范
- GB/T 47165-2026木质素硫酸盐木质素、碱木质素和水解木质素中木质素含量的测定
- 发电厂安监部主任岗位安全职责培训
- ISO 9001-2026《质量管理体系-要求》培训师、咨询师和审核员工作手册之8-1:“8运行-8.1运行的策划和控制”(雷泽佳编制-2026A0)
- 幼儿园艺术领域培训课件
- 妊娠期抗凝治疗对母胎安全性的管理策略
- 2026年口腔医疗管理公司医疗污水排放管理制度
评论
0/150
提交评论