JSF开发需知
首先,JSF是表示层的框架,是Java的标准。在未来的发展中,有可能所有的J2EE应用服务器都需要支持JSF(Java Server Faces)。
开发JSF几点比较要注意的地方:
(1)web工程启动时首先要在web.xml中加载jsf的配置信息,代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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">
<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>*.cy</url-pattern>
</servlet-mapping>
</web-app>
<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">
<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>*.cy</url-pattern>
</servlet-mapping>
</web-app>
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
在这里要注意,比如我的工程是test,<url-pattern>*.cy</url-pattern>在页面请求的时候要写成,http://localhost:8000/test/index.cy
(2)然后就是写jsf的配置文件faces-config.xml,在配置文件中比较重要的几个节点有
<faces-config>所有的节点都包含在该节点之下。
<navigation-rule>定义的是页面的流程.包含以下接点.
<from-view-id>定义了指定来自哪个页面的请求<from-view-id>/index.jsp</from-view-id>
<navigation-case>具体指定index.jsp提交后跳转到哪个页面,他有2个接点,一个是<from-outcome>login</from-outcome>一个是<to-view-id>/welcome.jsp</to-view-id>当请求来字<from-view-id>中指定的页面,并且<navigation-case>中的<from-outcome>为login时,就会将请求导向到<to-view-id>所指定的页面.
<managed-bean>节点,定义了formbean,类似于struts中的表单form,代码如下:
<managed-bean>
<managed-bean-name>user</managed-bean-name>定义了bean的别名
<managed-bean-class>具体bean的位置,路径要写全
onlyfun.caterpillar.UserBean
</managed-bean-class>bean的存活范围
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
(3)就是编写jsp页面,首先引入jsf的自定义标签,
<% @ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>http://java.sun.com/jsf/core之间要有引号
<% @ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
如果要使用jsf的组件时,这些组件在jsp中一定要放在<f:view>与</f:view>之间,就象html一样
(2)然后就是写jsf的配置文件faces-config.xml,在配置文件中比较重要的几个节点有
<faces-config>所有的节点都包含在该节点之下。
<navigation-rule>定义的是页面的流程.包含以下接点.
<from-view-id>定义了指定来自哪个页面的请求<from-view-id>/index.jsp</from-view-id>
<navigation-case>具体指定index.jsp提交后跳转到哪个页面,他有2个接点,一个是<from-outcome>login</from-outcome>一个是<to-view-id>/welcome.jsp</to-view-id>当请求来字<from-view-id>中指定的页面,并且<navigation-case>中的<from-outcome>为login时,就会将请求导向到<to-view-id>所指定的页面.
<managed-bean>节点,定义了formbean,类似于struts中的表单form,代码如下:
<managed-bean>
<managed-bean-name>user</managed-bean-name>定义了bean的别名
<managed-bean-class>具体bean的位置,路径要写全
onlyfun.caterpillar.UserBean
</managed-bean-class>bean的存活范围
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
(3)就是编写jsp页面,首先引入jsf的自定义标签,
<% @ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>http://java.sun.com/jsf/core之间要有引号
<% @ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
如果要使用jsf的组件时,这些组件在jsp中一定要放在<f:view>与</f:view>之间,就象html一样