- 浏览: 150157 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
驭乐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 2134Weblogic的update和stop/s ... -
Web Service HTTP1.0 and HTTP1.1性能测试报告
2009-10-21 17:55 3063第1章 测试需求分析 1.1 测试目的 w ... -
SOA与业务敏捷
2006-08-30 00:00 779作者:TIBCO中国研发中心 胡长城(银狐999) ... -
RESTful Web Services
2006-08-23 00:00 9251. The Fundamental 1.1 What ... -
CAS学习笔记
2006-08-02 00:00 1198•相关文档 官方文档: http://www.ja- ... -
SOA学习笔记
2006-07-26 00:00 872SOA是为了解决在Internet ... -
Lucene 基础指南[转]
2006-07-12 00:00 1216Lucene 基础指南 作者:lighter, 江南白衣 ... -
OSGi入门笔记
2006-07-05 00:00 923借助网上的一些资料,对OSGi有了一些了解,将到目前的一些粗浅 ... -
x509数字证书介绍
2006-06-28 00:00 1244一、什么是数字证书 数字证书就是互联网通讯中标志通讯各方身 ... -
SSL协议及其应用
2006-06-21 00:00 2003SSL协议及其应用 ... -
JSR 168与WSRP
2006-06-07 00:00 1515作者:Rachel Greenblatt ... -
JBoss学习笔记
2006-05-31 00:00 1320JBoss架构是由JMX MBean服务器、微内核组成的。 ... -
UDDI笔记
2006-05-24 00:00 1052◆UDDI的目的实际上是想提供一个针对公众网商业用户的在全 ... -
选择Seam的十大理由
2006-05-17 00:00 908一、增加AJAX特征的最快捷方式 在功能上,Ajax改变了W ... -
Seam学习笔记
2006-05-10 00:00 1307FAQ: seam的英文意思是:缝、接合处。seamless ... -
Spring学习笔记
2006-04-26 00:00 990Spring笔记 0. 背景 Spring F ... -
iBATIS学习笔记
2006-04-19 00:00 13491. iBATIS 关于iBATIS,iBATIS是一个Da ... -
Hibernate's FAQ
2006-04-05 00:00 7461. 关于session 1) 什么时机对session ... -
Hibernate学习笔记
2006-03-29 00:00 888● 相关文档: Hibernate参考文档 v3.0.2 ... -
JMX学习笔记
2006-03-22 00:00 968JMX 笔记 一些JMX的简单入门资料如下: ...
相关推荐
JSF学习笔记,总结了jsf的学习知识点,是学习jsf入门的基础
JSF学习笔记,笔记全面,有实例,是学习的好资料!里面包含了实际学习的列子,保证事半功倍
JSF学习笔记,JSF实战,JSF各种组件实用
良葛格JSF学习笔记
良葛格_JSF学习笔记
NULL 博文链接:https://miaoxianjie.iteye.com/blog/1571298
您是否在从事Web项目的开发? 如果是,您是否遇到过如下的问题: ... 2.多用户访问时,需要处理线程安全、数据验证、转换处理等问题。 3.展示逻辑和处理逻辑胶合在...本文是JSF入门资料的学习笔记,或许对您有一些帮助。
JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记 JSF实例笔记
JSF框架学习资:这学习资料是我学习时笔记有不正确的地方请指出,方便我改正!
林信良学习笔记(内容):ajax学习笔记,算法学习笔记,计算机图形学,C++学习笔记,设计模式,Hibernate学习笔记,Java学习笔记,JSF,JSP/Servlet,JUnit,Spring,Struts等
NULL 博文链接:https://miaoxianjie.iteye.com/blog/1565637
JavaEE5学习笔记13-JSF集成Facelets使用经验总结.
JavaEE5学习笔记12-JSF集成AJAX使用经验总结。
JavaEE5学习笔记11-JSF转换器验证器使用经验总结。
一分整理的学习笔记 里边包括了jsp,servlet,ejb,jsf,oracle,ajax,core jave struts,spring等各个方面的学习记录