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

jsf小例子的更多相关文章

  1. springmvc入门的第一个小例子

    今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...

  2. java即时通信小例子

    学习java一段时间了,今天写来一个即时通信的小例子练手在其过程中也学到了一些知识拿出来和大家分享,请路过的各位大神多多赐教... 好了下面讲一下基本的思路: 首先,编写服务器端的程序,简单点说吧就是 ...

  3. Runtime的几个小例子(含Demo)

    一.什么是runtime(也就是所谓的“运行时”,因为是在运行时实现的.)           1.runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数);  [runti ...

  4. bootstrap 模态 modal 小例子

    bootstrap 模态 modal  小例子 <html> <head> <meta charset="utf-8" /> <title ...

  5. INI配置文件分析小例子

    随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...

  6. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  7. 【zTree】 zTree使用的 小例子

    使用zTree树不是第一次了  但是 还是翻阅着之前做的 对照着 使用起来比较方便  这里就把小例子列出来   总结一下使用步骤 这样方便下次使用起来方便一点 使用zTree树的步骤: 1.首先  在 ...

  8. js小例子(标签页)

    运用js写的一个小例子,实现点击不同的标签出现不同的内容: <!DOCTYPE html> <html> <head> <meta chaset=" ...

  9. sbrk与brk的使用小例子

    sbrk() 和 brk() - Unix的系统函数   sbrk()和brk() 系统的底层会维护一个位置,通过位置的移动完成内存的分配和回收.映射内存时 以一个内存页作为基本单位.   void* ...

随机推荐

  1. Apache的Access.log分析总结

    Apache的Access.log分析总结 #查看80端口的tcp连接  #netstat -tan | grep "ESTABLISHED" | grep ":80&q ...

  2. setObject与setValue的区别

    在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有.1.先看看setVa ...

  3. Design Pattern Iterator 迭代器设计模式

    这个设计模式感觉很easy,我们平时敲代码的时候也是常常须要调用iterator的,C++和Java都是. 所以感觉没什么特别的.就是须要模仿C++或者Java的iterator类的功能吧. 这里简单 ...

  4. java多线程(同步与死锁问题,生产者与消费者问题)

    首先我们来看同步与死锁问题: 所谓死锁,就是A拥有banana.B拥有apple. A对B说:你把apple给我.我就把banana给你. B对A说:你把banana给我,我就把apple给你. 可是 ...

  5. 分布式-在win7上安装linux操作系统

    由于大多数的分布式计算框架.分布式存储系统.分布式平台都支持在unix类似的环境下.所以要做分布式的实验和学习的话,还是推荐装个linux系统.我这里安装的是ubuntu,由于之前装过这个. 一.下载 ...

  6. 如风一样,飞翔------Day37

    我一直都觉得自己是个反应没有那么敏锐的人,而不幸的是其实也是,所以,在菜鸟的头衔上,我不得不再背负上一个笨鸟的"光芒".我不苛求一飞冲天的传奇,却也有着不甘寂寞的激昂,我选择先飞, ...

  7. Quartz.NET 2.0 作业调度框架使用

    Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...

  8. HTTP协议探析

    1.HTTP协议概述 超文本传输协议(HTTP)是一种为分布式,协作式的,超媒体信息系统.它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布 ...

  9. js对表单设置了readonly和disabled后的区别

    Readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: 1)Readonly只针对input(text / pa ...

  10. [一个经典的多线程同步问题]解决方案三:互斥量Mutex

    本篇通过互斥量来解决线程的同步,学习其中的一些知识. 互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问.互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源.使用互 ...