<!-- Feedsky FEED发布代码开始 --> <!-- FEED自动发现标记开始 -->
点击这里使用RSS订阅本Blog:
<link rel="alternate" href="http://feed.feedsky.com/softwave" type="application/rss+xml" title="RSS 2.0">
<!-- FEED自动发现标记结束 --><script language="javascript"><!--
main_sub="c1s67";
more_subs="";
--> </script><script language="javascript" src="http://www.feedsky.com/jsout/publishlist_v2.js?burl=softwave&out_html=true"></script><!-- Feedsky FEED发布代码结束 -->
JSF In Action 学习一
转自【http://www.blogjava.net/gembin/archive/2008/02/29/183012.html】
首先介绍一下
JSF(JavaServer Faces)。JSF 是JavaEE标准的一部分, 是基于组建的架构(component architecture), 而且是事件驱动的,其目的在于把WebApp的开发可以向DesktopApp一样. 可以使各个常用的UI Widgets组件化, 提高重用性,简化创建Web UI的工作量,并且它也提供了丰富的功能集包含事件处理机制(Event Handling Mechanism)、页面导航(Page Navigation)、验证客户端数据(Input Validation)和数据转换(Conversion)等等。JSF框架最主要的特色之一就是它并不仅针对于一种类型的客户端,意味着除了用于桌面的 Html浏览器客户端外,它甚至还可能支持用于移动电话的Wml浏览器客户端等。现在已经有很多的Vender在支持JSF:Apache Software Foundation, BEA Systems,Borland Software, IBM, Oracle, Macromedia,等等。
JSF她的实现常用的有(当然还有其他的):
1. Sun
RI (
Reference
Implementation)
和一般的WebApp一样放在WEB-INF/lib下
所需的lib: jsf-api.jar (在JSF specification定义的API)
jsf-impl.jar (Sun JSF的参考实现)
jstl.jar (JSTL API)
standard.jar (JSTL的实现Implementation)
2. Apache MyFaces
所需的lib: myfaces-api-1.2.2.jar
myfaces-impl-1.2.2.jar
jstl.jar (JSTL API)
standard.jar (JSTL的实现Implementation)
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-el-1.0.jar
commons-discovery-0.4.jar
commons-logging-1.1.1.jar
配置环境:
1.配置web.xml
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->
1<web-app>
2
3<servlet>
4<servlet-name>FacesServlet</servlet-name>
5<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
6</servlet>
7<servlet-mapping>
8<servlet-name>FacesServlet</servlet-name>
9<url-pattern>/faces/*</url-pattern>
10</servlet-mapping>
11
12</web-app>
和传统的Struts类似,JSF也有配置文件faces-config.xml,并且她支持多个Config文件,可以在web.xml这样设置:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->
1<web-app>
2
3<context-param>
4<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
5<param-value>server</param-value>
6</context-param>
7<context-param>
8<param-name>javax.faces.CONFIG_FILES</param-name>
9<param-value>/WEB-INF/config1.xml,/WEB-INF/config2.xml</
10param-value>
11</context-param>
12
13<web-app>
2.配置faces-config.xml,在这里声明managed beans, 并且它支持 EL expression,其实所有的JSF Component都支持EL expression
所有的元素都包含在<faces-config></faces-config>之间,以下是常用的
managed-bean元素
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1<managed-bean>
2<description>Usedfortesting.
3</description>
4<managed-bean-name>testBean</managed-bean-name>
5<managed-bean-class>net.blogjava.gembin.TestBean
6</managed-bean-class>
7<managed-bean-scope>session</managed-bean-scope>
8</managed-bean>
以上
managed-bean的这3个元素是必须的,还有<description><display-name>, and <icon>.是可选的,主要用于可视化工具里显示之用. 定义完managed beans 之后就可以在JSP页面上引用它了。test.jsp
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1<%@tagliburi="http://java.sun.com/jsf/html"prefix="h"%>
2<%@tagliburi="http://java.sun.com/jsf/core"prefix="f"%>
3<html>
4<head>
5<title>Hello</title>
6</head>
7<body>
8<f:view>
9<h:outputTextvalue="Hello#{testBean.sayHello}!"/>
10</f:view>
11</body>
12</html>
TestBean.java
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1packagenet.blogjava.gembin;
2
3publicclassTestBean{
4
5publicTestBean(){}
6
7publicStringsayHello(){
8return"jsf, Helloworld!";
9}
10}
这里注意test.jsp中只能有1个
<f:view> 元素,并且它不代表任何UI,是JSF UI的Rootmanaged-bean-scope的值可以是:session,application,request,none。
每个托管的对象(managed-bean)不能引用生命周期比它还短的对象,所以
-
存放在request scope的Object可以引用none, application, session, request里的对象;
-
存放在session scope的Object可以引用none, application, session里的对象;
-
存放在application scope的Object可以引用none, application里的对象;
-
存放在none scope的Object可以引用none里的对象;
由此可见none scope 非常有用。
上面的例子运行之后将会在浏览器上显示:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->Hello jsf, Helloworld!!
To be continued(待续...)
<!-- Google Reader shared发布代码开始 --> <script type="text/javascript" src="http://www.google.com/reader/ui/publisher.js"></script><script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=GRC_p(%7Bc%3A%22green%22%2Ct%3A%22%5Cu8FD9%5Cu4E9B%5Cu6587%5Cu7AE0%5Cu4E5F%5Cu503C%5Cu5F97%5Cu4E00%5Cu770B%22%2Cs%3A%22false%22%7D)%3Bnew%20GRC"></script><!-- Google Reader shared发布代码结束 -->
分享到:
相关推荐
JSF In Action 学习一.rar
《JSF in Action》
JSF in Action英文版(含源代码)
JSF in action jsf宝典 轻量级框架
JSF in Action 中文版 JSF in Action 中文版
2个部分,第一部分和扩展部分,希望能帮助到初学JSF的人。
jsf in Action源代码(1-6章),JSF实战源代码(1-6章),JavaServer Faces in Avtion源代码(1-6章)
JSF IN ACTION 随书源码 part1 JSF_IN_ACTION_CODE part1
jsf in action 电子书jsf in action 电子书jsf in action 电子书jsf in action 电子书
jsf 资料 pdf 入门的源代码 JSF IN ACTION
in action系列经典丛书 JSF in Action英文版 12.48M
Manning - JavaServer Faces JSF in Action.pdf
JSF IN ACTION 随书源码 part2
JSF IN ACTION (源代码) 以前上传的书的源代码.......IN Action书的代码都可以在Manning 的官方网站(www.manning.com)上可以下载得到..希望大家喜欢
JSF In Action English Version
jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF
JSF in Action(含源代码)
JSF in Action(中文版)16~20章
Javaserver Faces Jsf In Action Manning.chm