欢迎来到Java学习网!
设为首页 | 加入收藏
当前位置: 首页 > Java架构 > JSF >
  JSF只有通过和JSP相结合,才能充分发挥它的功效。JSF是通过标签库和JSP进行集成的。标签库就相当于ASP.NET的服务端组件。JSF 提供了非常丰富的标签库,通过这些标签库,可以生成各种客户端模型,如HTML、WML、XML以及JavaScript等。通过这些标签,你可以很容易 建立大规模的客户端模型,并由这些标签自动处理客户端请求。

  接下来让我们来看一个如何使JSF和JSP在一起工作的例子。在JSF中有两个库。第一个叫做内核库,在这个库中包含了各种主要的标签,如配置 组件、管理事件、验证输入信息等。第二个库的主要功能是将HTML和JSF的各种标签相对应。每一个JSF标签都会对应一个HTML组件。如 UIInput标签对应了HTML中的文本框或密码框。

  在JSF标签中文本输入框叫做inputText,而密码输入库叫inputSecret。下面是一个简单的JSF和JSP结合的用户接口程序。

  <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

  <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

  <html>

  <head>

  <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=GB2312">

  <title>第一个JSF程序</title>

  </head>

  <body>

   <f:view>

   <h:form id="simpleForm">

   <h:outputText id="favoriteLabel" value="请输入一个数字:"/>

   <h:inputText id="favoriteValue" value="#{simple.longValue}">

    <f:validateLongrange maximum="30" minimum="0"/>

   </h:inputText>

   <p/>

   <h:commandButton id="submit" value="提交" action="#{simple.simpleActionMethod}"/>

   </h:form>

   </f:view>

  </body>

  </html>

  在上面的代码中,我们可以了解到JSF是如何同JSP集成的。我们首先可以看到一个内核标签:view。然后是几个JSF组件。如form、 outputText、inputText以及commandButton。这几个组件被放到form中从而开成了form中的一部分。在程序的最开始, 必须使用import导入两个标签库。代码如下。

  <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

  <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

  上面2行代码声明了JSP中要使用哪一个JSF标签库。内核库使用前缀(prefix)f声明,而HTML库使用前缀(prefix)h声明。 这两个前缀并不是必须要使用,而只是一个建议。在程序中,内核库必须要使用,因为view在所有的JSF页中必须使用。而HTML标签在运行时将JSF标 签转化为HTML组件,这个h前缀并不是必须的,而是JSF规范推荐使用的,这样,我们使我们的JSF程序更易读。

  在声明后是几行标准的HTML语句,本文不再详述。从<f:view>开始,是一段JSF语句。这段代码如下所示:

  <f:view>

  <h:form id="simpleForm">

  <h:outputText id="favoriteLabel" value="请输入一个数字:"/>

  <h:inputText id="favoriteValue" value="#{simple.longValue}">

  <f:validateLongrange maximum="30" minimum="0"/>

  </h:inputText>

  <p/>

  <h:commandButton id="submit" value="提交"

  action="#{simple.simpleActionMethod}"/>

  </h:form>

  </f:view>

  </f:view>标签预示着JSF的开始,而它的下一个标签form将建立一个HTML Form。而outputText标签相当于HTML中的label组件。inputText标签相当于HTML中的textField组件。而 commandButton标签相当于HTML中的submit按钮。
    相关教程
    推荐内容
    • JSF入门教程

      1. 什么是 Java Server Faces(jsf)? JSF为JAVA的 Web应用用户界面的开发人...