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         Myfaces的Servlet

 <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>

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

 
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签 JSF的全称   1、Joint Strike Fighter (JSF)   2、Java Server Faces (JSF) Java Server Faces (JSF)   JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java Community Process (JCP) 推动,属于Java EE 5中的技术规范,而受到了厂商的广泛支持。   JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签,能够生成与JavaBean属性绑定在一起的HTML表单元素。从应用开发者的角度看,两种框架十分相似,但是JSF可能会得到更多的支持,因为JSF是Java的标准。在未来的发展中,有可能所有的J2EE应用服务器都需要支持JSF。 Java Server Faces技术好处   引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面的方式来开发Web应用程序。提供了行为与表达的清晰分离。 不用特别的脚本语言或者标记语言来连接UI组件和Web层。JSF技术API被直接分层在Servlet API的顶端。 技术为管理组件状态提供一个丰富的体系机构、处理组件数据、确认用户输入和操作事件。 Java Server Faces应用程序   典型的JSF应用程序包含下列部分:   一组JSP页面   一组后台bean(为在一个页面上的UI组件定义的属性和函数的JavaBean组件)   应用程序配置资源文件(定义页面导航规则、配置bean和其它的自定义对象,如自定义组件)   部署描述文件( web.xml )   一组由应用程序开发者创建的自定义对象(有可能)   一些可能包含自定义组件、约束、转换器或者监听器的对象   为在页面中表现自定义对象的一组自定义tag   包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 Java Server Faces技术的重要开发框架 sun-ri、myfaces、icefaces、richfaces、seam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值