本文主要是介绍JSF In Action 学习一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击这里使用RSS订阅本Blog: rel="alternate" href="http://feed.feedsky.com/softwave" type="application/rss+xml" title="RSS 2.0" /> <script language="javascript"> </script> <script language="javascript" src="http://www.feedsky.com/jsout/publishlist_v2.js?burl=softwave&out_html=true"></script>
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
2
3 < servlet >
4 < servlet-name > Faces Servlet </ servlet-name >
5 < servlet-class > javax.faces.webapp.FacesServlet </ servlet-class >
6 </ servlet >
7 < servlet-mapping >
8 < servlet-name > Faces Servlet </ servlet-name >
9 < url-pattern > /faces/* </ url-pattern >
10 </ servlet-mapping >
11
12 </ 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 </
10 param-value >
11 </ context-param >
12
13 < web-app >
所有的元素都包含在<faces-config></faces-config>之间,以下是常用的 managed-bean元素
2 < description > Used for testing.
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 beans 之后就可以在JSP页面上引用它了。test.jsp
2 <% @ taglib uri = " 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:outputText value ="Hello #{testBean.sayHello}!" />
10 </ f:view >
11 </ body >
12 </ html >
2
3 public class TestBean{
4
5 public TestBean(){}
6
7 public String sayHello(){
8 return " jsf, Hello world! " ;
9 }
10 }
这里注意test.jsp中只能有1个 < f:view > 元素,并且它不代表任何UI,是JSF UI的Root
managed-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里的对象;
上面的例子运行之后将会在浏览器上显示:
To be continued(待续...)
<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>
这篇关于JSF In Action 学习一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!