jsf入门

包、 web.xml,  faces-config.xml ,可用MyEclipse提供的插件来生成

包:

 jsf-impl.jar 
 jsf-api.jar 
 commons-digester.jar 
 commons-collections.jar  
  commons-beanutils.jar 
 jstl.jar 
 standard.jar 

 

 

web.xml 


<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="
http://java.sun.com/xml/ns/j2ee
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
version="2.4"> 
<description> 
JSF Demo 
</description> 
<display-name>JSF Demo</display-name> 
<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>*.faces</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
</welcome-file-list> 
</web-app> 
在上面的定义中,我们将所有.faces的请求交由FaceServlet来处理,FaceServlet
会唤起相对的.jsp网页, 例如请求是/index.faces的话, 则实际上会唤起/index.jsp网页

 

 

public class UserBean
private String name; 
public void setName(String name) { 
this.name = name; 

public String getName() { 
return name; 

}

 

 

/WEB-INF/faces-config.xml: 
 • 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_0.dtd"> 
<faces-config> 
<navigation-rule> 
<from-view-id>/pages/index.jsp</from-view-id> 
<navigation-case> 
<from-outcome>login</from-outcome> 
<to-view-id>/pages/welcome.jsp</to-view-id> 
</navigation-case> 
</navigation-rule> 
<managed-bean> 
<managed-bean-name>user</managed-bean-name> 
<managed-bean-class> 
onlyfun.caterpillar.UserBean 
</managed-bean-class> 
<managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 
</faces-config> 


在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指
定的页面,并且指定了<navigation-case>中的<from-outcome>为login时,则会将请求
导向至<to-view-id>所指定的页面。 
在<managed-bean>中我们可以统一管理我们的Bean,我们设定Bean对象的存活
范围是session,也就是使用者开启浏览器与程序互动过程中都存活。 
接下来要告诉网页设计人员的信息是,他们可以使用的Bean名称,即
<managed-bean-name>中设定的名称,以及上面所定义的页面流程。

 

index.jsp 
<
%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<
%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<
%@page contentType="text/html;charset=GB2312"%> 
<html> 
<head> 
<title>第一个JSF程序</title> 
</head> 
<body> 
<f:view> 
<h:form> 
<h3>请输入您的名称</h3> 
名称: <h:inputText value="#{user.name}"/><p> 
<h:commandButton value="送出" action="login"/> 
</h:form> 
</f:view> 
</body> 
</html> 
我们使用了JSF的core与html标签库,core是有关于UI组件的处理,而html则是
有关于HTML的进阶标签。 
<f:view>与<html>有类似的作用,当您要开始使用JSF组件时,这些组件一定要
在<f: view>与</f:view>之间,就如同使用HTML时,所有的标签一定要在<html>与
</html>之间。 
html标签库中几乎都是与HTML标签相关的进阶标签,<h:form>会产生一个表
单,我们使用<h: inputText>来显示user这个Bean对象的name属性,而
<h:commandButton>会产生一个提交按钮,我们在action属性中指定将根据之前定义
的login页面流程中前往welcome.jsp页面。 
网页设计人员不必理会表单传送之后要作些什么,他只要设计好欢迎页面就好
了: 

 
 • welcome.jsp 
<%@ taglib uri="
http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="
http://java.sun.com/jsf/html" prefix="h" %> 
<
%@page contentType="text/html;charset=GB2312"%> 
<html> 
<head> 
<title>第一个JSF程序</title> 
</head> 
<body> 
<f:view> 
<h:outputText value="#{user.name}"/> 您好! 
<h3>欢迎使用 JavaServer Faces!</h3> 
</f:view> 
</body> 
</html> 
这个页面没什么需要解释的了,如您所看到的,在网页上没有程序逻辑,网页
设计人员所作的就是遵照页面流程,使用相关名称取出数据,而不用担心实际上程
序是如何运行的。 
接 下 来 启 动 Container , 连 接 上 您 的 应 用 程 序 网 址 , 例 如 :
http://localhost:8080/jsfDemo/pages/index.faces,填入名称并提交表单,

 

猜你喜欢

转载自cai-bird.iteye.com/blog/1731141
jsf