- 浏览: 156085 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
驭乐MJ:
好!谢谢啦!正在学习使用sean中。。
Seam学习笔记 -
laorer:
00 -现在,互联网造就了一批富翁,但那时,似乎什么都不会去想 ...
如果时光能够回流到八年前 -
liuqizhi0925:
八年前,OMG ,能改变的事情真的很多...
如果时光能够回流到八年前
FAQ:
1. JSF跟Spring如何结合?
A: 通过在faces-config配置文件中加入
<application>
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
</application>
可以使JSF跟Spring结合。
2. 为何称JSF是基于event的?而Struts是基于请求驱动或者Command驱动。
A: JSF是以页面组件为中心的,而页面组件是面向事件的。JSF只有commandButton,commandLink这两个UI组件是基于事件的,可以设定action属性,而该属性便是调用后台managed-bean的对应方法。
不过ASP.NET是所有UI组件都是面向事件的。
而其他UI组件,可以通过设定value属性,来调用后台managed-bean的对应方法,获取其返回值。例如:
<h:outputText value="#{testBean.creationTime}"/>
如果获取的返回值是一个自定义类型或者List,如何进行取自定义类型的属性或者迭代?
可以通过类似EL(称为JSF-EL)的方式来获取嵌套属性的值。可以通过#{purchases.cheapItems[2]}或者
#{purchases.valuableItems["low"]}获取List的值。
3. JSF的访问路径的机制?
A: JSF是以页面组件为中心的,类似ASP.NET。所以要访问JSF的应用,实际上是直接访问JSP页面。不过对xx.jsp的访问路径要修改成xx.faces。(类似ASP.NET去访问xx.aspx)
4. JSF是否有interceptor等拦截器机制?如何在managed-bean中使用Servlet的API?
A: JSF可以在页面增加actionListener,类似interceptor的机制。
Servlet的API可以通过FacesContext,例如:
FacesContext fc = FacesContext.getCurrentInstance();
fc.getExternalContext().getResponse();
fc.getExternalContext().getRequest();
5. JSF可否结合其他JSP标签?结合ajax是否方便?在页面层结合Scriptlet是否方便,可否跟request的Attribute等结合使用?
A: JSF可以使用其他JSP标签以及JSTL。JSF通过EL取值和通过JSF-EL取值是效果一样的。例如
<LI>Employee's first name: ${employee.name.firstName}
跟<LI>Employee's first name: <h:outputText value="#{employee.name.firstName}"/> 作用一样。
JSF后台managed-bean的返回值实际上是放在request的Attrubite中,key为其属性名。所以可以直接在JSP的Scriptlet中与request的Attribute等结合使用。
6. JSF的MVC框架与Struts框架的异同?
A: JSF的MVC框架跟ASP.NET类似,是以页面组件为中心的。 要先访问指定的jsp相关的faces然后再跳转到Controller最后再到View。如下图所示:
Struts的MVC框架是 Controller(action)->View(JSP)
JSF的MVC框架是 View(*.faces)->Controller(managed-bean)->View(JSP)
7.JSF能否实现类似Struts的 action(or servlet)->view(JSP)?跟.faces相关的jsp能否隐藏起来?
A: 都不能。
8.JSF的<managed-bean>可以实现对actionBean的设值注入。
9.配置文件的分离,通过在web.xml中设置
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-nav.xml</param-value>
</context-param>
10.JSF跟ASP.NET的一些区别。
ASP.NET页面控件的name跟id 是跟自命名是一致的。例如:
<input name="TextBox1" type="text" value="ss" id="TextBox1" />
11.JSF如何传递页面参数?
A: 通过<h:commandLink action="viewProduct" styleClass="highLightLink">
<h:outputText value="view"/>
<f:param name="productId" value="#{productBean.id}"/>
</h:commandLink>
这种方式是通过post来传递参数的。对于url参数只能在backingBean中,通过如下代码获取
FacesContext fc = FacesContext.getCurrentInstance();
String id = (String) fc.getExternalContext().getRequestParameterMap().get("id");
JSF的优缺点:
我认为JSF的优缺点都是因为这个框架是以页面组件为中心。
优点:可以利用一些功能强大的UI组件,这些UI组件是服务器端,并且基于事件的。可以方便地定义事件响应方法。
缺点:太依赖于UI组件。目前尚没有可以跟vs.net媲美的IDE来支持基于UI组件的开发。所以开发和配置起来还是有些麻烦,而且开发自定义的UI组件更加复杂。
因为依赖于UI组件,所以页面层的开发不够灵活。
因为依赖于UI组件,所以很多原始的html标签不能用。这导致美工设计的静态页面,到程序员这边还要经过不小的调整,而不像其他web框架那样结合方便。
JSF的标准标签包括以下几个类别:
输出(Outputs)
其名称以output作为开头,作用为输出指定的讯息或绑定值。
输入(Inputs)
其名称以input作为开头,其作用为提供使用者输入字段。
命令(Commands)
其名称以command作为开头,其作用为提供命令或连结按钮。
选择(Selections)
其名称以select作为开头,其作用为提供使用者选项的选取。
其它
包括了form、message、messages、graphicImage等等未分类的标签。
JSF的页面组件的属性中,都没有name这个属性。 这些标准标签都可以设定id、styleClass等属性值。
如果自定义JSF的页面组件,一般会用到以下的类:
javax.faces.component.UIComponent
自定义Component所要继承的父类别,但通常,您是继承其子类别,例如UIInput、UIOutput等等。
javax.faces.webapp.UIComponentTag
自定义JSF标签所要继承的父类别,继承它可以帮您省去许多JSF标签处理的细节。
javax.faces.context.FacesContext
包括了JSF相关的请求信息,您可以透过它取得请求对象或请求参数,或者是Application对象。
javax.faces.application.Application
包括了一个应用程序所共享的信息
如果安装了myeclipse,jsp页面中只要包含有jsf的taglib(如下所示),则会自动打开JSF的Designer
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
JSF跟Struts2的整合
JSF可以跟Struts2进行整合,具体参考《Struts 2权威指南》
后台可以使用Struts2的Action类,这些类因为可以有Spring来管理,更具有可测试性。
前台页面依旧使用JSF的页面组件。
只要加入struts2和jsf的lib包以及struts2-jsf-plugin-2.**.jar
然后简单修改web.xml以及在struts.xml中加入相应的interceptors即可,而不需要faces-config.xml配置文件。
<package name="jsf" extends="jsf-default">
<interceptors>
<interceptor-stack name="jsfFullStack">
<interceptor-ref name="params" />
<interceptor-ref name="basicStack"/>
<interceptor-ref name="jsfStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="jsfFullStack"/>
</package>
发表评论
-
Weblogic的update和stop/start的区别
2009-10-28 19:50 2178Weblogic的update和stop/s ... -
Web Service HTTP1.0 and HTTP1.1性能测试报告
2009-10-21 17:55 3107第1章 测试需求分析 1.1 测试目的 w ... -
SOA与业务敏捷
2006-08-30 00:00 827作者:TIBCO中国研发中心 胡长城(银狐999) ... -
RESTful Web Services
2006-08-23 00:00 9711. The Fundamental 1.1 What ... -
CAS学习笔记
2006-08-02 00:00 1256•相关文档 官方文档: http://www.ja- ... -
SOA学习笔记
2006-07-26 00:00 934SOA是为了解决在Internet ... -
Lucene 基础指南[转]
2006-07-12 00:00 1283Lucene 基础指南 作者:lighter, 江南白衣 ... -
OSGi入门笔记
2006-07-05 00:00 979借助网上的一些资料,对OSGi有了一些了解,将到目前的一些粗浅 ... -
x509数字证书介绍
2006-06-28 00:00 1304一、什么是数字证书 数字证书就是互联网通讯中标志通讯各方身 ... -
SSL协议及其应用
2006-06-21 00:00 2106SSL协议及其应用 ... -
JSR 168与WSRP
2006-06-07 00:00 1604作者:Rachel Greenblatt ... -
JBoss学习笔记
2006-05-31 00:00 1367JBoss架构是由JMX MBean服务器、微内核组成的。 ... -
UDDI笔记
2006-05-24 00:00 1092◆UDDI的目的实际上是想提供一个针对公众网商业用户的在全 ... -
选择Seam的十大理由
2006-05-17 00:00 951一、增加AJAX特征的最快捷方式 在功能上,Ajax改变了W ... -
Seam学习笔记
2006-05-10 00:00 1362FAQ: seam的英文意思是:缝、接合处。seamless ... -
Spring学习笔记
2006-04-26 00:00 1082Spring笔记 0. 背景 Spring F ... -
iBATIS学习笔记
2006-04-19 00:00 13971. iBATIS 关于iBATIS,iBATIS是一个Da ... -
Hibernate's FAQ
2006-04-05 00:00 7881. 关于session 1) 什么时机对session ... -
Hibernate学习笔记
2006-03-29 00:00 967● 相关文档: Hibernate参考文档 v3.0.2 ... -
JMX学习笔记
2006-03-22 00:00 1005JMX 笔记 一些JMX的简单入门资料如下: ...
相关推荐
### JSF学习笔记知识点梳理 #### 一、JavaServer Faces (JSF) 概述 - **定义**:JavaServer Faces (简称JSF) 是一个为简化基于Java的Web应用程序开发而设计的标准框架。它提供了丰富的功能集,帮助开发者创建交互...
在这个“良葛格_JSF学习笔记”中,我们将会深入探讨JSF的核心概念、工作原理以及实际应用。 一、JSF概述 JSF作为Sun Microsystems(现Oracle公司)开发的一套标准Java API,是MVC(Model-View-Controller)设计模式...
**JSF2整合Spring3——JSF学习笔记4** 在Java服务器端开发中,JavaServer Faces(JSF)和Spring框架都是重要的技术。JSF是一个用于构建用户界面的MVC(Model-View-Controller)框架,而Spring则是一个全面的企业级...
下面我们将深入探讨JSF的学习要点。 首先,JSF中的UI组件是其核心特色之一。这些组件可以看作是服务器端的HTML控件,例如按钮、文本框、表单等,它们提供了声明式的方式来创建和管理Web页面的交互元素。开发者可以...
**JSF(JavaServer Faces)** 是一种Java平台上的用户界面框架,用于构建Web应用程序。它提供了一种声明式的方式来创建用户界面...深入学习JSF,理解其核心概念和实践技巧,对于成为一名专业的Java Web开发者至关重要。
您是否在从事Web项目的开发? 如果是,您是否遇到过如下的问题: ... 2.多用户访问时,需要处理线程安全、数据验证、转换处理等问题。 3.展示逻辑和处理逻辑胶合在...本文是JSF入门资料的学习笔记,或许对您有一些帮助。
**JSF2学习笔记1——理解JavaServer Faces 2.0框架** JavaServer Faces (JSF) 是一种基于组件的Web应用程序开发框架,由Sun Microsystems(现为Oracle Corporation的一部分)开发,旨在简化用户界面构建。JSF2是该...
学习笔记可能涵盖了JSF的基础概念,如生命周期、组件库、EL表达式、 Managed Beans等。 2. **Web应用开发**:JSF是Web应用开发的一部分,因此笔记可能包含如何创建和配置JSF项目、使用JSF与Servlets和JSP的交互、...
林信良学习笔记(内容):ajax学习笔记,算法学习笔记,计算机图形学,C++学习笔记,设计模式,Hibernate学习笔记,Java学习笔记,JSF,JSP/Servlet,JUnit,Spring,Struts等
这个实例集合涵盖了JSF学习的所有关键内容,包括基础概念、组件使用、数据绑定、事件处理、页面导航以及与其他技术如PrimeFaces的集成。 首先,JSF的核心概念包括Facelets作为视图层的默认技术,它允许开发者使用...
### JavaEE5学习笔记12-JSF集成AJAX使用经验总结 #### 1. JSF (JavaServer Faces) 概览 JavaServer Faces (JSF) 是 Java EE 的一个重要组成部分,它提供了一种构建用户界面的组件框架。JSF 允许开发者创建可重用的...
这篇"jee6 学习笔记 5 - Struggling with JSF2 binding GET params"主要探讨了开发者在使用JSF2绑定GET参数时可能遇到的挑战和解决方案。 JSF2是一个基于MVC(模型-视图-控制器)设计模式的Java框架,用于创建交互...
SSH学习笔记3主要聚焦于三个Java企业级开发框架——STRUTS、SPRING和HIBERNATE的集成与应用。这三个框架是Java后端开发中非常重要的组件,它们各自负责不同的层面,共同构建了一个强大的MVC(Model-View-Controller...
### JavaEE5学习笔记13-JSF集成Facelets使用经验总结 #### 一、Facelets简介及集成 **Facelets** 是一个为 **JSF**(JavaServer Faces)设计的视图技术,它提供了一种更为简洁高效的方式来构建JSF应用的用户界面。...