有人问我用过jsf没? 当时没有用过,就看了一下:
写了一个小例子 JSF和struts2 差不多的,都有一些配置和跳转
struts2的action配置和JSF的faces-config.xml 流程配置一样的,
JSF有自己的标签库,struts2也有自己的标签库,
看一个例子
一个简单的bean
public class UserBean {
private String name;
private String password;
private String msg;
省略了get set ....
为了让JSF知道设计流程 配置 定义一个/WEB-INF/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>/index.jsp</from-view-id> <navigation-case> <from-outcome>login</from-outcome> <to-view-id>/welcome.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>error</from-outcome> <to-view-id>/error.jsp</to-view-id> </navigation-case> </navigation-rule>
<managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class>com.corejsf.UserBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <application> <locale-config> <default-locale>zh</default-locale> <supported-locale>en_US</supported-locale> <supported-locale>zh_CN</supported-locale> </locale-config> </application> </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
<html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view> <head> <title>A Simple JavaServer Faces Application</title> </head> <body> <h:form> <h3>Please enter your name and password.</h3> <table> <tr> <td>Name:</td> <td> <h:inputText value="#{user.name}"/> </td> </tr> <tr> <td>Password:</td> <td> <h:inputSecret value="#{user.password}"/> </td> </tr> </table> <p> <h:commandButton value="Login" action="#{user.verify}"/> </p> </h:form> </body> </f:view> </html>