`
jsupport
  • 浏览: 38727 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSF学习及应用一-(安装配置)

阅读更多
JSFJavaServer Faces
 

JSFJAVA EE规范的一部分。它是:Java Web应用的用户界面框架。

l         JSF提供一套API以及标签库,用来创建页面表单以及复杂的界面元素

l         JSF使得编写表单提交的代码更加简单,这些代码可以响应那些不同的按钮提交,改变某些值或某些用户的选择等等

l         Managed beans:使得JSF简化了处理请求参数的方法

l         ELExpression Language):JSF有一套表达式语言用来访问java bean的属性以及集合元素等。

l         提供表单域类型转换以及验证

实现包

Apachemyfaces包是第一个开源的JSF实现。Myfaces有一些扩展的包,这些包是对JSF标准组件的扩充,可以协助我们更加快速的开发。Myfaces的扩展包括:

* Tomahawk <shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="width: 70.5pt; height: 15pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>myfaces提供了一系列远远超过规范规定的组件,这些组件可以兼容JSF1.1的参考实现,以及其它兼容JSF1.1规范的其它实现,当然也兼容myfacesJSF实现。

 

* Tobago:目标是提供一套基于JSF以及myfaces的良好设计的UI组件。Tobago不仅仅只是一套标签库。下面的几点让它与其它框架不同:

       - 无需HTML设计,聚焦于商业应用程序的开发。开发者可以将精力集中在用户界面上,而不是网页。

       - UI组件是对HTML的抽象,它不仅仅可以用于HTML页面,它的输出格式可以定制。

       - “主题”机制,使得可以很容易切换应用程序的外观。

       - 布局管理器可以自动排列组件,这就意味着无需使用HTML表格或其它技术来手工管理组件的布局。

 

* TrinidadJSF1.1的组件库

最新的myfaces包(版本是:<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">1.1.1</span></chsdate>)是对JSF1.1规范的实现。

UI组件模型

JSF提供一套丰富灵活的组件模型,包括:

l         一套UIComponent类,定义UI组件的状态和行为。

l         呈现模型:定义如何用不同的方式来呈现组件

l         事件和监听器模型用来处理组件的事件。

l         转换模型:进行数据转换

l         验证模型:如何验证数据的合法性

 

UI组件类

比如UIFormUIInput等等,具体请参考文档。

组件呈现模型

不同的组件会有不同的呈现方式,同一个组件可能会有不同的呈现方式,比如UISelectOne,可以使用radio来呈现,也可以使用下拉框来呈现等。这些,都是通过呈现模型来定义的。

数据转换模型

当一个组件绑定到一个对象上之后,对于组件数据来说,总共有两个视图:

一个是模型视图:从这个角度去看,数据表现为java对象的类型,如int ,long,Date等等

一个是呈现视图:从这个角度去看,数据表现为一种可以被人读取或修改的形式。比如一个Date类型,可能被展现为一个yyyy-MM-dd格式的字符串,或者是三个字符串,分别代表年、月、日。

可以定义自己的转换器来转换数据。

事件与监听器模型

事件:值改变事件、动作事件、数据模型事件。

值改变:比如输入框的值被更改、选中了checkbox

动作事件:点击按钮或超链接

数据模型事件:UIData组件的一行被选中的时候触发这个事件。

导航模型


Navigation-rule,可以包含一个from-view-id和多个
navigation-case
每个navigation-case中,主要包括转向的页面。

From-view-id 当前页面

From-action:从哪个action方法

From-outcome:从哪个逻辑名称

To-view-id:转向哪个页面

 

导航解决的问题是:从哪里到哪里。一句话来说就是:从from-view-id页面,当from-action方法被调用而且其返回值是from-outcome的时候,转向to-view-id页面。

 

当导航发生的时候,即使没有调用action方法,但也会设置相应Backing Bean的属性(如果当前的Form域绑定了属性的话)。

 

安装JSF:下载http://java.sun.com/j2ee/javaserverfaces/download.html
 

1、在Eclipse中添加JSF的支持:

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <img height="356" alt="" src="http://www.blogjava.net/images/blogjava_net/freeman1984/clip_image002.jpg" width="553" border="0"><br><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype> 

不要选择Install JSF Jars and packaged TLDS和Install JSF TLDs,因为我们要安装的版本跟Eclipse支持的版本不一样,我们用的是新的版本。在MyEclipse中添加支持的目的,是为了可以使用MyEclipse的页面导航设计器,避免我们手工编写页面导航的繁琐性。

点击完成即可。

 

myEclipse添加了JSF的配置文件和修改了web.xml文件!

为了跟新版本的myfaces配合,我们最好将web.xml中关于myfaces的配置全部按照下面的说明重新配置一遍:

我们的例子以myfaces的实现包以及Tomahawk的扩展包作为学习JSF的起点。

依赖包可以在tomahawk-examples-1.1.6-bin/myfaces-example-blank-1.1.6.war中找到。

 

2、添加依赖包:


 

将依赖包拷贝到WEB-INF/lib下面,如果已经有的包,可以选择覆盖或不覆盖,然后解决其中版本有冲突的包,将低版本的包去掉!

冲突的包主要包括:commons-collections,commons-fileupload,commons-lang,commons-logging

 

3、修改web.xml文件,添加如下内容:

l         指定配置文件的位置

 <context-param>

    <param-name>javax.faces.CONFIG_FILES</param-name>

    <param-value>/WEB-INF/faces-config.xml</param-value>

 </context-param>

l         Tomahawk的过滤器,用于解释那些扩展的功能

 <filter>

    <filter-name>extensionsFilter</filter-name>

    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>

 </filter>

 <filter-mapping>

    <filter-name>extensionsFilter</filter-name>

    <url-pattern>*.jsf</url-pattern>

 </filter-mapping>

 <filter-mapping>

    <filter-name>extensionsFilter</filter-name>

    <url-pattern>/faces/*</url-pattern>

 </filter-mapping>

l         MyfacesServlet

 <servlet>

    <servlet-name>Faces Servlet</servlet-name>

    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

 </servlet>

 <servlet-mapping>

    <servlet-name>Faces Servlet</servlet-name>

    <url-pattern>*.jsf</url-pattern>

 </servlet-mapping>

4、在WEB-INF目录下,添加faces-config.xml配置文件

<?xml version="1.0"?>

<!DOCTYPE faces-config PUBLIC

 "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"

 "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >

<faces-config>

   

</faces-config>

下一篇将结合MyEclipseJSF的支持来开发JSF的程序。

 

分享到:
评论

相关推荐

    一个简单的jsf例子------JSF2学习笔记1

    JavaServer Faces (JSF) 是一种基于组件的Web应用程序开发框架,由Sun Microsystems(现为Oracle Corporation的一部分)开发,旨在简化用户界面构建。JSF2是该框架的第二主要版本,引入了许多改进和新特性,使得它...

    JSF2整合Spring3------JSF学习笔记4

    **JSF2整合Spring3——JSF学习笔记4** 在Java服务器端开发中,JavaServer Faces(JSF)和Spring框架都是重要的技术。JSF是一个用于构建用户界面的MVC(Model-View-Controller)框架,而Spring则是一个全面的企业级...

    JSF第一步--JSF+Spring+ Hibernate+AJAX编程实践 试读

    在"JSF第一步--JSF+Spring+Hibernate+AJAX编程实践 试读"这本书中,读者可以期待学习如何设置这些技术的集成环境,创建JSF组件,配置Spring容器,理解Hibernate的映射和查询机制,以及如何在JSF中使用AJAX进行异步...

    jsf-spring-boot-starter-2.2.6.zip

    JSF是Java平台上的一个标准用户界面框架,用于构建Web应用程序。而Spring Boot则简化了Spring应用的初始设置和配置,提供了一种快速开发新服务的方式。版本号2.2.6表明这是该项目的一个稳定版本,通常包含了错误修复...

    jsf-by-example-源码.rar

    通过对这个源码的学习,开发者可以了解JSF应用的基本结构,如何创建和配置Managed Beans,以及如何设计和管理视图。同时,示例代码可能涵盖了错误处理、AJAX支持、国际化等方面,这些都是JSF开发中的关键点。 **7. ...

    JSF2.0-hello-world-example-2.1.7.zip

    **JSF 2.0(JavaServer Faces 2.0)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。这个"JSF2.0-hello-world-example-2.1.7.zip"是一个示例项目,用于帮助开发者了解如何在JSF 2.0环境...

    JSF超值大礼包---想学就下

    另一本JSF入门教程,可能涵盖了JSF的基础概念、环境配置、第一个JSF应用的创建、数据绑定、导航控制等内容。它是系统学习JSF的基础,与API手册配合使用效果更佳。 通过这些资料,你将能够全面了解JSF的基础知识,...

    jboss-ajax4jsf-1.1.1-src

    4. **示例或测试代码**:演示如何使用Ajax4jsf的实例,帮助开发者理解和学习如何集成到自己的JSF应用中。 5. **文档**:可能包含API文档、用户指南、开发人员手册等,提供关于如何使用和扩展框架的详细信息。 6. **...

    JSF-2-Hello-World-Example.zip

    JavaServer Faces(简称JSF)是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。JSF 2.x是其第二个主要版本,带来了许多增强特性和改进,使得开发更加高效和简单。这个"JSF-2-Hello-World-...

    jsf-spring-boot-autoconfigure-2.2.0.zip

    3. **JSF与Spring Boot的集成**:学习如何使用`jsf-spring-boot-autoconfigure`来简化JSF在Spring Boot应用中的集成,包括配置、依赖管理和部署。 4. **Java客户端开发**:掌握如何设计和实现一个Java客户端,包括...

    jsf-1.2_07-b03-FCS.rar

    示例项目对于初学者尤其有价值,它们展示了JSF 1.2如何实际工作,以及如何配置、部署和运行一个JSF应用。通过学习和分析这些例子,开发者可以快速掌握JSF 1.2的关键特性和最佳实践。 总的来说,JSF 1.2是Java Web...

    jsf1.2 source code

    通过阅读`jsf-doc`,开发者可以获得对JSF概念的深入了解,学习如何配置JSF应用,以及如何解决常见问题。 #### JSF 1.2 的核心概念与特性 - **组件模型**:JSF 1.2基于组件模型,允许开发者组合和定制UI组件。`...

    esigate-jsf-4.0-beta-1.zip

    JSF(JavaServer Faces)是Java平台上的一个MVC(模型-视图-控制器)框架,用于构建用户界面,特别是Web应用。 【描述】"ant-get-free-port.zip" 提供了一个Ant插件,这个插件的主要功能是帮助开发者在程序运行时...

    JSF入门教材part1--IBM社区

    JavaScript Server Faces(JSF)是Java平台上用于构建Web应用程序的一种模型-视图-控制器(MVC)框架。作为Java EE的一部分,它为开发人员提供了一种结构化且组件化的编程模型,简化了用户界面的创建和维护。在这个...

    weld-jsf-translator-war-2.0.0.Beta4.zip

    【标题】"weld-jsf-translator-war-2.0.0.Beta4.zip" 提供的是一个基于 Weld 和 JSF 的翻译器战争工件,它属于 JavaServer Faces (JSF) 应用程序的组成部分。Weld 是 CDI (Contexts and Dependency Injection) 框架...

    jsf+ejb3 实例-员工管理系统

    在这个“jsf+ejb3 实例-员工管理系统”中,我们将深入探讨这两个技术在构建一个实际应用中的融合和作用。** **JSF简介** JavaServer Faces (JSF) 是一种用于构建Web应用程序的MVC(Model-View-Controller)框架。它...

    weld-jsf-translator-war-2.2.0.CR2.zip

    【标题】"weld-jsf-translator-war-2.2.0.CR2.zip" 提供的是一个基于Weld和JSF的翻译器Web应用的战争(WAR)文件,版本为2.2.0.CR2。Weld是Java EE平台中的CDI(Contexts and Dependency Injection)规范的参考实现...

Global site tag (gtag.js) - Google Analytics