「javajsf技术」java 技术

博主:adminadmin 2023-03-21 03:27:07 676

今天给各位分享javajsf技术的知识,其中也会对java 技术进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

基于JSF技术的WEB应用开发

开发基于Java技术的Web用户界面一直存在着开发难度较大 效率较低的问题 Sun公司提出的一种新标准框架Java Server Faces (JSF) 可以很好地解决上述问题 在第三方RAD开发工具支持下 可以实现Web应用实例的可视化开发 本文详细讨论了如何利用JSF 开发Web用户界面 最后分析了JSF 技术的优缺点及其应用前景

与微软Visual Studio NET程序开发有可视化工具的支持相比 人们在开发基于Java的Web用户界面时仍然需要手工书写大量的标签 同时还要考虑页面状态信息的保存 客户端事件处理等问题 开发难度比较大 效率较低 重用性差 Java Server Faces (JSF) 技术正是为了解决这一问题应运而生的 其最引人注目的特性之一是它与标记语言 协议 客户端设备无关 利用JSF提供的可重用 可扩展 基于组件的用户界面框架 在快速开发工具RAD的支持下实现可视化开发 现在JSF技术已经得到了许多大厂商的支持 如SUN公司的JSF Web UI IBM公司的JSF extension以及Oracle的 ADF Faces等 许多开源项目(典型的Apache Myfaces)也提供对JSF技术的支持 同时Oracle Sun Borland和IBM等公司都为JSF提供了开发环境

传统JSP开发存在的问题

实现表示层和业务层的分离 这是J EE Web应用一直以来的理想 可惜JSP 并没有真正实现这个目标 JSP是一个基于Java的Web用户界面开发标准技术 是一种 脚本式 开发的Web技术 在JSP 页面中混淆了大量用于显示逻辑的HTML 和用于业务逻辑的Java 代码 使得页面设计与程序开发无法分离;JSP另一个更大的缺陷是脚本不能重用 这常常导致开发者不得不在JSP页面之间进行复制 粘贴操作 进而导致同一段代码出现多个版本 从而使得程序的调试和设计极其错综复杂 而标签库TagLib作为JSP的补充 将Java代码从JSP中剥离 也只是有限地实现了表现与逻辑的分离 始终没有摆脱代码和HTML页面揉和的问题 此外 JSP还存在着其他固有的缺陷 例如对应Servlet编译的出错信息很难在JSP 中找到准确的出错位置 由此给调试带来很大困难

JSF技术介绍

在Sun公司提出的J EE(Java Enterprise Edition)平台上 Java Server Faces (JSF) 是一种用于构建Web应用程序的新标准Java框架[ ] 它提供了一种以组件为中心来开发Java Web用户界面的方法 从而简化了开发 企业开发人员 和Web设计人员将发现JSF开发可以简单到只需将用户界面 (UI) 组件拖放到页面上 而 系统开发人员 将发现丰富而强健的JSF API为他们提供了无与伦比的功能和编程灵活性 JSF还通过将良好构建的模型 视图 控制器 (MVC)设计模式集成到它的体系结构中 确保了应用程序具有更高的可维护性

JSF是由Java Community Process (JCP)制定的一个Web应用框架标准 JSF具有良好定义的请求处理生命周期和丰富的组件层次结构 旨在推动基于Java的Web用户界面开发的简易性 利用JSF提供的可重用 可扩展 基于组件的用户界面框架 在快速开发工具RAD的支持下 可以通过拖放组件的方式对Web用户界面进行可视化编辑 将用户界面上的组件与一个数据源绑定 并将客户端用户界面产生的事件交给服务器端处理 从而大大降低基于Java的Web用户界面的开发难度 提高开发效率

Java Server Faces技术包括两个主要部分

( ) 一组用于表示用户界面组件并管理其状态 处理事件和验证输入的JavaAPI 这些API支持国际化和可访问性(accessibility);

( ) 一个用于在JSP页面中表示JSF 组件的自定义标签库

简而言之 JSF的主要部分是一个GUI组件框架和一个用于跨不同标记语言或客户端设备描述组件的灵活模型 JSF GUI组件框架使开发人员能够创建JSF应用程序的用户界面 JSF GUI组件包括标准的HTML表单控件(如按钮) 布局组件 以及更复杂的组件 如数据表 此外 第三方还可以扩展规范中定义的基本类 来开发额外的GUI组件

JSF 组件的体系结构是这样设计的 组件的功能由组件类定义 组件的呈现由一个单独的呈现器(renderer)定义 呈现器定义了组件类如何映射为适合特定客户的组件标签 JSF 参考实现中包含了一个标准的RenderKit 用于生成基于HTML 的标记 实现将组件类呈现给HTML客户

lishixinzhi/Article/program/Java/hx/201311/25609

Java框架研究——JSF与Struts的异同

Struts和JSF/Tapestry都属于表现层框架 这两种分属不同性质的框架 后者是一种事件驱动型的组件模型 而Struts只是单纯的MVC模式框架 老外总是急吼吼说事件驱动型就比MVC模式框架好 何以见得 我们下面进行详细分析比较一下到底是怎么回事?首先事件是指从客户端页面(浏览器)由用户操作触发的事件 Struts使用Action来接受浏览器表单提交的事件 这里使用了Command模式 每个继承Action的子类都必须实现一个方法execute 在Struts中 实际是一个表单Form对应一个Action类(或DispatchAction) 换一句话说 在Struts中实际是一个表单只能对应一个事件 Struts这种事件方式称为application event application event和Component event相比是一种粗粒度的事件 Struts重要的表单对象ActionForm是一种对象 它代表了一种应用 这个对象中至少包含几个字段 这些字段是Jsp页面表单中的input字段 因为一个表单对应一个事件 所以 当我们需要将事件粒度细化到表单中这些字段时 也就是说 一个字段对应一个事件时 单纯使用Struts就不太可能 当然通过结合JavaScript也是可以转弯实现的 而这种情况使用JSF就可以方便实现h:inputText id= userId value= #{login userId} f:valueChangeListener type= logindemo UserLoginChanged //h:inputText#{login userId}表示从名为login的JavaBean的getUserId获得的结果 这个功能使用struts也可以实现 name= login property= userId 关键是第二行 这里表示如果userId的值改变并且确定提交后 将触发调用类UserLoginChanged的processValueChanged( )方法 JSF可以为组件提供两种事件 Value Changed和 Action 前者我们已经在上节见识过用处 后者就相当于struts中表单提交Action机制 它的JSF写法如下 h:mandButton id= login mandName= login f:actionListener type= logindemo LoginActionListener //h:mandButton从代码可以看出 这两种事件是通过Listerner这样观察者模式贴在具体组件字段上的 而Struts此类事件是原始的一种表单提交Submit触发机制 如果说前者比较语言化(编程语言习惯做法类似Swing编程) 后者是属于WEB化 因为它是来自Html表单 如果你起步是从Perl/PHP开始 反而容易接受Struts这种风格 基本配置 Struts和JSF都是一种框架 JSF必须需要两种包JSF核心包 JSTL包(标签库) 此外 JSF还将使用到Apache项目的一些mons包 这些Apache包只要部署在你的服务器中既可 JSF包下载地址 选择其中Reference Implementation JSTL包下载在 /downloads_taglibs standard cgi所以 从JSF的驱动包组成看 其开源基因也占据很大的比重 JSF是一个SUN伙伴们工业标准和开源之间的一个混血儿 上述两个地址下载的jar合并在一起就是JSF所需要的全部驱动包了 与Struts的驱动包一样 这些驱动包必须位于Web项目的WEB INF/lib 和Struts一样的是也必须在web xml中有如下配置 web appservletservlet nameFaces Servlet/servlet nameservlet classjavax faces webapp FacesServlet/servlet classload on startup /load on startup/servletservlet mappingservlet nameFaces Servlet/servlet nameurl pattern* faces/url pattern/servlet mapping/web app这里和Struts的web xml配置何其相似 简直一模一样 正如Struts的struts config xml一样 JSF也有类似的faces config xml配置文件 faces confignavigation rulefrom view id/index jsp/from view idnavigation casefrom outelogin/from outeto view id/wele jsp/to view id/navigation case/navigation rulemanaged beanmanaged bean nameuser/managed bean namemanaged bean classrejsf UserBean/managed bean classmanaged bean scopesession/managed bean scope/managed bean/faces config在Struts config xml中有ActionForm Action以及Jsp之间的流程关系 在faces config xml中 也有这样的流程 我们具体解释一下Navigation 在index jsp中有一个事件 h:mandButton label= Login action= login /Action的值必须匹配form oute值 上述Navigation配置表示 如果在index jsp中有一个login事件 那么事件触发后下一个页面将是wele jspJSF有一个独立的事件发生和页面导航的流程安排 这个思路比struts要非常清晰 managed bean类似Struts的ActionForm 正如可以在struts config xml中定义ActionForm的scope一样 这里也定义了managed bean的scope为session 但是如果你只以为JSF的managed bean就这点功能就错了 JSF融入了新的Ioc模式/依赖性注射等技术 Ioc模式 对于Userbean这样一个managed bean 其代码如下 public class UserBean {private String name;private String password;// PROPERTY: namepublic String getName() { return name; }public void setName(String newValue) { name = newValue; }// PROPERTY: passwordpublic String getPassword() { return password; }public void setPassword(String newValue) { password = newValue; }}managed beanmanaged bean nameuser/managed bean namemanaged bean classrejsf UserBean/managed bean classmanaged bean scopesession/managed bean scopemanaged propertyproperty namename/property namevalueme/value/managed propertymanaged propertyproperty namepassword/property namevaluesecret/value/managed property/managed beanfaces config xml这段配置其实是将 me 赋值给name 将secret赋值给password 这是采取Ioc模式中的Setter注射方式 Backing Beans 对于一个web form 我们可以使用一个bean包含其涉及的所有组件 这个bean就称为Backing Bean Backing Bean的优点是 一个单个类可以封装相关一系列功能的数据和逻辑 说白了 就是一个Javabean里包含其他Javabean 互相调用 属于Facade模式或Adapter模式 对于一个Backing Beans来说 其中包含了几个managed bean managed bean一定是有scope的 那么这其中的几个managed beans如何配置它们的scope呢?managed bean managed propertyproperty namevisit/property namevalue#{sessionScope visit}/value/managed property这里配置了一个Backing Beans中有一个setVisit方法 将这个visit赋值为session中的visit 这样以后在程序中我们只管访问visit对象 从中获取我们希望的数据(如用户登陆注册信息) 而visit是保存在session还是application或request只需要配置既可 UI界面 JSF和Struts一样 除了JavaBeans类之外 还有页面表现元素 都是是使用标签完成的 Struts也提供了struts faces tld标签库向JSF过渡 使用Struts标签库编程复杂页面时 一个最大问题是会大量使用logic标签 这个logic如同if语句 一旦写起来 搞的JSP页面象俄罗斯方块一样 但是使用JSF标签就简洁优美 jia:navigatorItem name= inbox label= InBox icon= /images/inbox gif action= inbox disabled= #{!authenticationBean inboxAuthorized} /如果authenticationBean中inboxAuthorized返回是假 那么这一行标签就不用显示 多干净利索!先写到这里 我会继续对JSF深入比较下去 如果研究过Jdon框架的人 可能会发现 Jdon框架的jdonframework xml中service配置和managed bean一样都使用了依赖注射 看来对Javabean的依赖注射已经迅速地成为一种新技术象征 如果你还不了解Ioc模式 赶紧补课 lishixinzhi/Article/program/Java/ky/201311/28617

java,jsf是什么

JSF主要由两个部分组成:一套功能强大的API函数,用来表示UI组件、管理组件状态、处理事件、进行输入有效性验证,以及对国际化和可访问性的支持;一套包含各种页面元素的并允许自定义的JSP标签库,用来在JSP页面中显示JSF的界面。通过使用JSF所提供的简单而又实用的模型,任何开发人员都可以快速轻松地开发Web应用程序。他们可以使用大量现成的可重用的UI组件,并将这些组件与数据源连接,还可以很容易地将客户端事件和服务器端的事件处理程序绑定。强大的JSF技术可以很好地处理和管理任何复杂的用户界面,使开发人员可以将注意力集中在应用程序的开发上。

javajsf技术的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 技术、javajsf技术的信息别忘了在本站进行查找喔。