jsf小例子

时间:2022-09-20 04:30:53

有人问我用过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>