`
thinktothings
  • 浏览: 780172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSF2.0的一个简单Demo

    博客分类:
  • JSF
阅读更多

学习javaeetutorial6.pdf 106页到113页 附件中javaeetutorial6.zip

环增需求:JDK1.6    服务器:tomcat6.0.29  web项目   框架:JSF2.0

简单描述:项目启动后,进入欢迎界面faces/greeting.xhtml

 <welcome-file-list>
        <welcome-file>faces/greeting.xhtml</welcome-file>
   </welcome-file-list>

 

Servlet

 <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>

 

交给JSF处理

进入faces-config.xml的配置

/greeting.xhtml

<navigation-rule>
    <description>
        The decision rule used by the NavigationHandler to
        determine which view must be displayed after the
        current view, greeting.jsp is processed.
    </description>
    <from-view-id>/greeting.xhtml</from-view-id>
    <navigation-case>
        <description>
            Indicates to the NavigationHandler that the response.jsp
            view must be displayed if the Action referenced by a
            UICommand component on the greeting.jsp view returns
            the outcome "success".
        </description>
      <from-outcome>success</from-outcome>
      <to-view-id>/response.xhtml</to-view-id>
    </navigation-case>

  </navigation-rule>

 

 

由于请求的操作,应该action默认的不是success 即<from-outcome>success</from-outcome>
不符合,所以直接返回请求页面/greeting.xhtml

进入开始页面,

<managed-bean>
    <description>
      The backing bean that backs up the guessNumber Web application
    </description>
    <managed-bean-name>UserNumberBean</managed-bean-name>
    <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>minimum</property-name>
      <property-class>long</property-class>
      <value>0</value>
    </managed-property>
    <managed-property>
      <property-name>maximum</property-name>
      <property-class>long</property-class>
      <value>10</value>
    </managed-property>
  </managed-bean>

 

配的是Session作用域,所以每次请求的,bean只有第一次会被实例化(无参构造函数生成的随机数就被确定了,以后的请求这这个值是不会改变的),然后是返回结果页面response.xhtml只显示Bean中的UserNumberBean.response,如果用户输的value等于随机数就显示猜对了,否则显示猜错了。。

 

 

 

 

JSF的一个简单例子:

说明:

Web\WEB-INF\web.xml配置

<!--上下文参数--> 
<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
<!--servlet路径拦截-->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
<!--session的生命周期-->
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
<!--欢迎页面-->
    <welcome-file-list>
        <welcome-file>faces/greeting.xhtml</welcome-file>
    </welcome-file-list>

 

Web\WEB-INF\faces-config.xml配置

 

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<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_2_0.xsd"
    version="2.0">

   <application>
    <resource-bundle>
        <base-name>guessNumber.ApplicationMessages</base-name>
        <var>ErrMsg</var>
    </resource-bundle>
    <locale-config>
      <default-locale>en</default-locale>
    </locale-config>

    </application>

<managed-bean>
    <description>
      The backing bean that backs up the guessNumber Web application
    </description>
    <managed-bean-name>UserNumberBean</managed-bean-name>
    <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>minimum</property-name>
      <property-class>long</property-class>
      <value>0</value>
    </managed-property>
    <managed-property>
      <property-name>maximum</property-name>
      <property-class>long</property-class>
      <value>10</value>
    </managed-property>
  </managed-bean>
  <navigation-rule>
    <description>
        The decision rule used by the NavigationHandler to
        determine which view must be displayed after the
        current view, greeting.jsp is processed.
    </description>
    <from-view-id>/greeting.xhtml</from-view-id>
    <navigation-case>
        <description>
            Indicates to the NavigationHandler that the response.jsp
            view must be displayed if the Action referenced by a
            UICommand component on the greeting.jsp view returns
            the outcome "success".
        </description>
      <from-outcome>success</from-outcome>
      <to-view-id>/response.xhtml</to-view-id>
    </navigation-case>

  </navigation-rule>

  <navigation-rule>
   <description>
        The decision rules used by the NavigationHandler to
        determine which view must be displayed after the
        current view, response.jsp is processed.
    </description>
    <from-view-id>/response.xhtml</from-view-id>
    <navigation-case>
        <description>
            Indicates to the NavigationHandler that the greeting.jsp
            view must be displayed if the Action referenced by a
            UICommand component on the response.jsp view returns
            the outcome "success".
        </description>
        <from-outcome>success</from-outcome>
      <to-view-id>/greeting.xhtml</to-view-id>
    </navigation-case>
  </navigation-rule>

</faces-config>

 

 

guessNumber.UserNumberBean.java

/*
 * Copyright 2009 Sun Microsystems, Inc.
 * All rights reserved.  You may not modify, use,
 * reproduce, or distribute this software except in
 * compliance with  the terms of the License at:
 * http://developer.sun.com/berkeley_license.html
 */


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package guessNumber;

import java.util.Random;


public class UserNumberBean {
    Integer randomInt = null;
    Integer userNumber = null;
    String response = null;
    private boolean maximumSet = false;
    private boolean minimumSet = false;
    private long maximum = 0;
    private long minimum = 0;

    public UserNumberBean() {
        Random randomGR = new Random();
        randomInt = new Integer(randomGR.nextInt(10));
        System.out.println("Duke's number: " + randomInt);
    }

    public void setUserNumber(Integer user_number) {
        userNumber = user_number;
    }

    public Integer getUserNumber() {
        return userNumber;
    }

    public String getResponse() {
        if ((userNumber != null) && (userNumber.compareTo(randomInt) == 0)) {
            return "Yay! You got it!";
        } else {
            return "Sorry, " + userNumber + " is incorrect.";
        }
    }

    public long getMaximum() {
        return (this.maximum);
    }

    public void setMaximum(long maximum) {
        this.maximum = maximum;
        this.maximumSet = true;
    }

    public long getMinimum() {
        return (this.minimum);
    }

    public void setMinimum(long minimum) {
        this.minimum = minimum;
        this.minimumSet = true;
    }
}

 

  • 大小: 21.4 KB
分享到:
评论
1 楼 beykery 2015-02-15  
你这也太复杂了。。。。jsf2不应该是这样的。。。。

相关推荐

    JSF2.0源代码

    JSF 2.0是该框架的一个重要版本,它带来了许多改进和新特性,提升了开发者的体验和应用性能。在本文中,我们将深入探讨JSF 2.0的源代码,特别是mojarra实现,这是JSF规范的主要参考实现。 **一、Mojarra:JSF的核心...

    jsf2.0版本helloworld

    本例中的"jsf2.0版本helloworld"就是一个基础的入门示例,旨在展示如何在MyEclipse环境中配置和运行一个简单的JSF应用。 **JSF 2.0的关键特性** 1. **Faces Flow**: JSF 2.0引入了Faces Flow,这是一种新的导航模型...

    jsf2.0 hibernate3.2 spring2.5整合 jar包(所有)

    包括richfaces mysql log4j 在eclipse里手动配置环境经常会因jar出现种种问题,我把完整的jsf2.0 spring2.5 hibernate3整合所有jar传上来希望有用 如果有需要我会传上一个jsf2.0 spring hibernate的小demo上来

    jsf demo 各种实例

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它提供了一种组件化和事件驱动的方式来创建交互式的Web界面。JSF的核心概念包括组件、事件、渲染器和生命周期,这使得开发人员...

    richfaces jsf2.0

    学习的好助手richfaces-demo-jsf2-3.3.3.CR1-tomcat6.war

    jsf2.1demo

    这个"jsf2.1demo"是一个入门教程,旨在帮助开发者了解并熟悉JSF 2.1的基础知识和实际应用。 首先,JSF 2.1引入了Facelets作为默认的视图层技术,取代了JSP。Facelets是一种XML-based的模板语言,它使得视图更加清晰...

    JSF-Demo.rar_DEMO_jsf demo down load

    本DEMO——"JSF-Demo.rar" 是一个适用于初学者的实践项目,旨在帮助学习者快速理解和掌握JSF的基本概念和使用方法。 在"第14章JSF代码"这个压缩包中,我们可以期待找到以下几个关键的知识点: 1. **JSF基本概念**...

    jsf+spring+hibernate整合demo

    jsf1.2+spring2.0+hibernate3.2整合demo part1

    ICEFaces 2.0

    ICEFaces 2.0 是一个基于JavaServer Faces (JSF) 技术的 AJAX 框架,专门用于构建富互联网应用程序(Rich Internet Applications, RIA)。它在JSF的基础上扩展,提供了高度交互性和实时用户体验,使开发者能够轻松地...

    jsf-demo练兵

    `jsf-demo`是一个练习项目,旨在帮助开发者熟悉JSF框架的使用。 在`jsf-demo`项目中,我们可以看到以下几个关键文件和目录: 1. **readme.txt**:这是一个常见的文本文件,通常包含项目的简要介绍、安装指南、使用...

    jsf 猜数字demo

    在这个"jsf 猜数字demo"中,我们可以推测作者尝试利用JSF技术实现了一个简单的猜数字游戏。下面将详细介绍JSF的基本概念以及如何用JSF来构建这样的应用。 JSF的核心概念包括: 1. **组件(Component)**: JSF中的...

    JSF1.2+Spring2.0+Hibernate3.2的一个登陆实例

    标题“JSF1.2+Spring2.0+Hibernate3.2的一个登陆实例”涉及到的是一个集成使用JavaServer Faces(JSF)、Spring框架和Hibernate ORM的登录应用示例。这个项目可能是一个教学资源或者开发者用来学习如何在旧版本的...

    JSF live demo 最新完整源代码

    11. **部署描述符**:JSF应用程序通常包含一个`faces-config.xml`部署描述符,用于配置组件、导航规则和转换/验证规则。 这个"JSF live demo"压缩包提供的源代码涵盖了以上诸多知识点,对于学习和理解JSF的开发流程...

    JSF书,源代码,PPT

    10. **源代码分析**:压缩包中的"JSFDemo"可能是一个JSF应用的示例代码,你可以通过阅读和运行这个代码来学习JSF的实际应用,了解组件的配置和使用方法,以及如何将业务逻辑与视图层结合。 11. **PPT讲解**:"JSF....

Global site tag (gtag.js) - Google Analytics