`

JSF简单应用

阅读更多
        有一段时间没有用JSF了,现在都有些生疏了,以前看过一些,现在终于有时间仔细研究下了,记下学习笔记,以备日后温故知新。

      【1】新建一个web工程名为guessNumber,配置JSF应用环境在Web应用配置文件web.xml中映射一个javax.faces.webapp.FacesServlet实例。
        web.xml文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <!-- 该参数配置使用指定JSF配置文件所在的位置 -->
  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <!-- 该servlet用来配置JSF的前端控制器-->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>Faces Servlet_tmp</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <!-- 该servlet-mapping用来配置对哪些请求需要交由上面所配置的servlet -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
     【2】创建一个后台Bean(backing bean)UserNumberBean.java源文件在com.jsf.userNumber包下。
package com.jsf.userNumber;

import java.util.Random;

public class UserNumberBean {

private Integer userNumber=null;//该属性用来保存用户所输入数字
private Integer randomNumber=null;//该属性用来保存随机生成的数字
private String response=null;//该属性用来保存响应信息
private long maximum=10;//该属性用来指定猜数字的上限
private long minimum=0;//该属性用来指定猜数字的下限
public UserNumberBean(){
Random random=new Random();
randomNumber=random.nextInt(10);
}
public String check(){
if(userNumber!=null&&userNumber.compareTo (randomNumber)==0){
this.response="恭喜你,你猜对了";
}else{
if(userNumber>randomNumber){
this.response="你猜大了,请猜小一些";
}else{
this.response="你猜小了,请猜大一些";
}
}
return "result";
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public long getMaximum() {
return maximum;
}
public void setMaximum(long maximum) {
this.maximum = maximum;
}
public long getMinimum() {
return minimum;
}
public void setMinimum(long minimum) {
this.minimum = minimum;
}
}
          【3】为了便于管理在WebRoot目录下新建一个文件userNumber用于存放猜数游戏的JSP页面,在该文件夹下新建两个JSP页面greeting.jsp,result.jsp
          【4】在JSF的配置文件中添加一个托管Bean(managed bean)声明,该配置文件默认在WebRoot/Web-INF文件下为faces-config.xml

        faces-config.xml:
        
          <?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">
         <!--猜字游戏  -->
<navigation-rule>
<!-- 指定猜数游戏的起点导航页面 -->
<from-view-id>/userNumber/greeting.jsp</from-view-id>
<navigation-case>

                   <!--以上页面表单提交时根据触发托管Bean中方法返回的参数进行页面导航设置-->
<from-outcome>result</from-outcome>
<to-view-id>/userNumber/result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
                <!--返回页面导航  -->
<from-view-id>/userNumber/result.jsp</from-view-id>
<navigation-case>
                  <!--result.jsp页面返回参数为back时导航到greeting.jsp页面-->
<from-outcome>back</from-outcome>
<to-view-id>/userNumber/greeting.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
          <!--托管Bean设置别名为UserNumberBean-->
<managed-bean-name>UserNumberBean</managed-bean-name>
           <!--托管Bean所在的类-->
<managed-bean-class>com.jsf.userNumber.UserNumberBean</managed-bean-class>
         <!--托管Bean的生命周期-->
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
        
                   【5】编辑步骤【3】中新建的两个JSP页面 greeting.jsp,result.jsp
          greeting.jsp页面:
            <%@ page language="java" pageEncoding="UTF-8"%>
          <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
          <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
           <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<title>猜数字游戏</title>
</HEAD>

<BODY>
<f:view>
<h:form id="guessForm">
  <h2>
请猜一个从
                        <!--页面输出组件值绑定到托管Bean的minimum属性 -->
            <h:outputText value="#{UserNumberBean.minimum}" />

                        <!--页面输出组件值绑定到托管Bean的maximum属性 -->
<h:outputText value="#{UserNumberBean.maximum}" />
的数字
</h2>
                    <!--页面输入组件值绑定到托管Bean的userNumber属性 -->
<h:inputText id="userNo" label="User Number"
value="#{UserNumberBean.userNumber}">
                   <!--JSF验证器,验证输入的数值是否为整数,如要提示中文错误信息需要在资源文件中设置-->
<f:validateLongRange minimum="#{UserNumberBean.minimum}"
maximum="#{UserNumberBean.maximum}" />
</h:inputText>
                   <!--表单提交时触发托管Bean的check方法,该方法返回一个字符串,根据faces-config.xml文件中导航到相应的页面-->
<h:commandButton id="submit" action="#{UserNumberBean.check}" value="提交" />
  <br />
             </h:form>
</f:view>
</BODY>
</HTML>

           result.jsp页面:

         <%@ page language="java" pageEncoding="UTF-8"%>
        <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
        <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<HTML>
<HEAD>
<title>显示结果</title>
</HEAD>

<body bgcolor="white">
<f:view>
<h:form id="resultForm">
<h2>
                 <!--页面输出托管Bean的response属性值  -->
<h:outputText id="result" value="#{UserNumberBean.response}" />
</h2>
               <!--点击后退直接返回一个字符串back-->   
<h:commandButton id="back" value="后退" action="back" immediate="true" />
<p>
</h:form>
</f:view>
</body>
</HTML>

          【6】运行首先把工程发布到Tomcat服务器,启动服务。开启浏览器在地址栏中输入URL路径:  http://127.0.0.1:8080/guessNumber/userNumber/greeting.faces在按回车键即可看到运行效果。
分享到:
评论

相关推荐

    JSF简单入门例子

    在这个“JSF简单入门例子”中,我们将深入探讨JSF的基本概念、关键组件以及如何创建一个简单的JSF应用程序。 **1. JSF基本概念** - **组件模型**:JSF的核心是组件模型,它定义了UI组件及其交互方式。组件可以是...

    JSF网页应用开发购物车

    这是一个强大的集成开发环境,特别适合Java开发者,提供了对JSF的全面支持,包括代码提示、模板和调试工具,使得创建JSF Web应用变得简单易行。 购物车功能的核心在于数据的增删操作,这涉及到**数据库交互**。JSF...

    简单的jsf登录

    综上所述,这个简单的JSF登录示例展示了如何配置`web.xml`和`faces-config.xml`,创建登录页面以及实现后端逻辑。通过学习这个案例,初学者可以理解JSF的基本工作原理,并逐步掌握更复杂的应用开发。

    jsf最简单例子(源代码),初学者适合。

    "jsf最简单例子(源代码)" 暗示这是一个面向初学者的基础JSF应用示例,提供了源代码供学习者参考。这个例子通常会展示JSF的基本架构和关键概念,帮助新手快速入门。 **描述解析:** "直接在tomcat中发布使用" 提示...

    jsf简单入门教程

    ### JSF简单入门教程知识点详解 #### 一、JSF简介 **1.1 JSF概念** JavaServer Faces (简称JSF) 是一种基于Java的标准技术,用于构建企业级Web应用。JSF的设计目的是简化Web应用程序的开发过程,通过提供一套标准化...

    NetBeans中JSF应用开发

    在本文中,我们将深入探讨如何在NetBeans IDE中开发基于JavaServer Faces (JSF)的应用。JSF是一种Java EE框架,专门设计用于构建Web应用程序的用户界面组件。它提供了一个模型-视图-控制器(MVC)架构,使得开发者...

    简单的JSF框架应用-Eclipse

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!

    JSF入门+JSF web实战+JSF2

    书中会介绍如何创建一个简单的JSF应用程序,设置开发环境,以及如何使用JSF的UI组件来构建动态网页。此外,还会讲解EL(Expression Language)和 Managed Beans,这两个是JSF中用于数据绑定和业务逻辑处理的关键技术...

    jsf 最简单的eclipse工程例子

    这个"jsf 最简单的eclipse工程例子"应该会展示如何从零开始搭建一个基本的JSF应用,包括创建页面、编写Managed Bean和进行交互。对于初学者来说,这是一个很好的起点,可以理解JSF的核心概念和工作流程。通过实践和...

    利用NetBeans IDE构建JSF应用

    通过以上步骤,我们可以快速地搭建起一个基于JSF的Web应用开发环境,并创建一个简单的JSF页面用于输入查询条件。JSF的强大之处在于其简化了Web应用的开发流程,使得开发人员能够更加专注于业务逻辑的实现而非繁琐的...

    JSF与Facelets应用程序

    **Facelets** 是JSF的一种视图层技术,它取代了早期的JSP(JavaServer Pages)作为JSF应用的标准视图表示。Facelets以其XML为基础的语法和模板结构,提供了更清晰、更易于维护的视图创建方式。它支持组件重用,便于...

    jsf开发应用程序.pdf

    1. **可视化开发**:WebSphere Studio 提供了一个可视化的界面,允许开发者通过简单的拖拽操作将JSF组件添加到JSP页面中。这种直观的方式有助于加快开发速度,并降低学习曲线。 2. **快速应用程序开发(RAD)**:...

    jsf教程 JSF为JAVA的 Web应用用户界面

    通过 JSF ,您可以在页面中轻松自如地使用 WEB 组件、捕获用户行为所产生的事件、执行验证、建立页面导航…,当使用支持JSF的开发工具来开发 JSF 应用的时候,一切将会变得异常简单,GUI方式拖放组件、修改组件属性...

    介绍JSF框架的PPT

    JavaServer Faces (简称JSF) 是一个基于Java EE标准的Web应用程序框架,旨在简化Web应用程序的开发过程。JSF的目标是提供一套标准化的方法来构建和管理用户界面。它不仅提供了一个标准的编程接口,还配备了一套丰富...

    简单jsf程序 供新手学习

    **JSF(JavaServer Faces)** 是一种Java技术,用于构建Web应用程序,它提供了一种组件模型和事件处理机制,简化了用户界面的开发。这个压缩包“简单jsf程序 供新手学习”显然是为了帮助初学者入门JSF,通过实践来...

    JSF+SSH开发应用实例

    JSF(JavaServer Faces)是一种Java技术,用于构建交互式用户界面,特别是在Web应用程序中。SSH,即Spring、Struts和Hibernate的组合,是Java开发中的一个流行框架栈,用于处理MVC(Model-View-Controller)架构。在...

    用jsf写的简单聊天程序

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,主要用于构建Web应用程序。它简化了前端和后端的交互,通过组件模型、事件处理和生命周期管理提供了丰富的用户体验。在这个“用jsf写的简单聊天程序”...

    jsf第一个例子 jsf架包 jsf实例

    JSF提供了组件库,使得创建动态、交互式的网页变得简单。 在“jsf第一个例子”中,我们通常会遇到以下关键概念: 1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用...

    JSF框架及其简单的实例

    JavaServer Faces(JSF)是Java平台上的一个标准的、用于构建Web应用程序的MVC(Model-View-Controller)框架。它为开发者提供了丰富的组件库和事件处理机制,使得开发人员可以更高效地创建交互式的用户界面。JSF的...

Global site tag (gtag.js) - Google Analytics