【[b]本文适合[/b]】:JSF初学者
【[b]JSF是什么[/b]】:JSF是一个框架,在开源的世界里,框架帮助我们用一种方式解决一类特定问题,比如Hibernate框架是和数据库打交道的(持久化数据库框架)。[color=blue]JSF是一个基于Java的Web应用程序服务端的用户接口组件框架。JSF包括表示UI组件和管理其状态的API;处理事件,服务端校验,数据转换;定义页面导航;支持国际化和可访问性;提供所有这些特点的扩展能力。它还包括两个为JSP定制的标签库,一个用于表示JSP页面内的UI组件,一个用于配置服务端的对象组件。[/color]
【[b]导入需要库文件[/b]】
|----|-- lib
|----|----|--jsf-impl.jar //java的标准库,JSF标准
|----|----|--jsf-api.jar //同上
|----|----|--commons-digester.jar
|----|----|--commons-collections.jar
|----|----|--commons-beanutils.jar
|----|----|--commons-logging.jar
|----|----|--standard.jar
|----|----|--jstl.jar
JSTL包含jstl.jar、standard.jar两个jar包,jstl.jar包是Sun公司提供的封JSTL API接口和抽象类,standard.jar包中封装了Apache Jakarta小组编写的JSTL API实现类。Standard.jar包中包括核心标签库、国际化/格式化标签库、数据库标签库中的标签和标准的EL自定义函数的API实现类。
Apache小组在提供JSTL时,同时也提供了JSTL标签的标签描述文件,即TLD文件。它们都封装在standard.jar包中,位于该jar文件的META-INF目录下。用解压缩打开standard.jar包,进入META-INF目录,可以看到JSTL标签的标签库描述文件。
各个包作用参见:[url]http://origin100.iteye.com/blog/358150[/url]
【[b]配置web.xml[/b]】:JSF所有的请求都通过FacesServlet来处理
格式比较固定,相关解释可以自己Google。
【[b]编写后台bean[/b]】
【[b]编写页面[/b]】index.jsp和welcome.jsp
主页面输入姓名
欢迎页面显示姓名
【配置faces-config.xml】控制页面转向
至此基本完成一个实例,运行调试。
【[b]JSF是什么[/b]】:JSF是一个框架,在开源的世界里,框架帮助我们用一种方式解决一类特定问题,比如Hibernate框架是和数据库打交道的(持久化数据库框架)。[color=blue]JSF是一个基于Java的Web应用程序服务端的用户接口组件框架。JSF包括表示UI组件和管理其状态的API;处理事件,服务端校验,数据转换;定义页面导航;支持国际化和可访问性;提供所有这些特点的扩展能力。它还包括两个为JSP定制的标签库,一个用于表示JSP页面内的UI组件,一个用于配置服务端的对象组件。[/color]
【[b]导入需要库文件[/b]】
|----|-- lib
|----|----|--jsf-impl.jar //java的标准库,JSF标准
|----|----|--jsf-api.jar //同上
|----|----|--commons-digester.jar
|----|----|--commons-collections.jar
|----|----|--commons-beanutils.jar
|----|----|--commons-logging.jar
|----|----|--standard.jar
|----|----|--jstl.jar
JSTL包含jstl.jar、standard.jar两个jar包,jstl.jar包是Sun公司提供的封JSTL API接口和抽象类,standard.jar包中封装了Apache Jakarta小组编写的JSTL API实现类。Standard.jar包中包括核心标签库、国际化/格式化标签库、数据库标签库中的标签和标准的EL自定义函数的API实现类。
Apache小组在提供JSTL时,同时也提供了JSTL标签的标签描述文件,即TLD文件。它们都封装在standard.jar包中,位于该jar文件的META-INF目录下。用解压缩打开standard.jar包,进入META-INF目录,可以看到JSTL标签的标签库描述文件。
各个包作用参见:[url]http://origin100.iteye.com/blog/358150[/url]
【[b]配置web.xml[/b]】:JSF所有的请求都通过FacesServlet来处理
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
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">
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>0</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.jsp</welcome-file>
</welcome-file-list>
</web-app>
格式比较固定,相关解释可以自己Google。
【[b]编写后台bean[/b]】
public class UserBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
【[b]编写页面[/b]】index.jsp和welcome.jsp
主页面输入姓名
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JSF 测试程序</title>
</head>
<body>
<f:view>
<h:form>
<h3>Please input your name!</h3>
NAME:<h:inputText value="#{user.name}"></h:inputText>
<h:commandButton value="送出" action="login"></h:commandButton>
</h:form>
</f:view>
</body>
</html>
欢迎页面显示姓名
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>欢迎页面</title>
</head>
<body>
<f:view>
<h:outputText value="#{user.name}"/>,您好!
<h3>Welcome to learn JSF</h3>
</f:view>
</body>
</html>
【配置faces-config.xml】控制页面转向
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/welcome.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.test.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
至此基本完成一个实例,运行调试。