- 浏览: 118760 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
wenbing2610:
其实用Struts实现图片上传比用Servlet实现容易多了。 ...
Struts2文件上传深入FileUploadInterceptor -
i_feng:
public class uploadImageAction ...
Struts2文件上传深入FileUploadInterceptor -
wenbing2610:
...
ognl.MethodFailedException
有一段时间没有用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在按回车键即可看到运行效果。
【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在按回车键即可看到运行效果。
发表评论
-
CSS样式表的overflow属性
2015-01-02 19:22 28一、滚动条样式overflow ... -
jrebel运用
2014-07-13 22:00 1194JRebel热部署 ... -
JPA执行原生SQL截断Char类型问题
2014-05-24 21:39 1187在JPA的API中执行原生 ... -
JPA基本数据类型映射
2014-05-24 21:06 3908/** ... -
spring定时器配置
2014-03-18 21:36 696创建测试类: ... -
The Struts dispatcher cannot be found
2013-11-03 18:48 657运行环境:struts2环境中访 ... -
JasperException
2013-09-15 20:41 1018JasperException异常: ... -
equal symbol expected
2013-09-15 20:08 1198equal symbol ... -
Hibernate主键生成器
2013-09-12 21:11 793... -
Criterion和Criteria
2013-09-08 16:00 1955Hibernate Criter ... -
getHibernateTemplate用法
2013-09-08 15:02 588HibernateTemplate提供的方法 ... -
JS中页面跳转
2013-09-08 14:01 658<html><head><t ... -
GridPanel详解
2013-03-10 10:45 10421、Ext.grid.GridPanel ... -
tomcat内存溢出
2013-03-04 20:26 727在使用Java程序从数据库中查询大量的数据或 ... -
History Object
2013-01-07 21:06 759history 对象是window 对象的另一个子 ... -
Write to programmer
2012-12-29 20:16 861很多的java初级程序员对自己没有一个明确的方 ... -
EL语言
2012-09-27 22:08 897EL的前世今生: ... -
JSTL标签的使用
2012-09-27 22:00 820JSP 标准标记库( Standard Tag Library ... -
使用IBATIS防止sql注入
2012-08-26 21:17 1619对于ibaits参数引用可以使用#和$两 ... -
IBATIS动态SQL标签用法
2012-08-26 21:04 12651、动态SQL片段通过SQL片 ...
相关推荐
在这个“JSF简单入门例子”中,我们将深入探讨JSF的基本概念、关键组件以及如何创建一个简单的JSF应用程序。 **1. JSF基本概念** - **组件模型**:JSF的核心是组件模型,它定义了UI组件及其交互方式。组件可以是...
这是一个强大的集成开发环境,特别适合Java开发者,提供了对JSF的全面支持,包括代码提示、模板和调试工具,使得创建JSF Web应用变得简单易行。 购物车功能的核心在于数据的增删操作,这涉及到**数据库交互**。JSF...
综上所述,这个简单的JSF登录示例展示了如何配置`web.xml`和`faces-config.xml`,创建登录页面以及实现后端逻辑。通过学习这个案例,初学者可以理解JSF的基本工作原理,并逐步掌握更复杂的应用开发。
"jsf最简单例子(源代码)" 暗示这是一个面向初学者的基础JSF应用示例,提供了源代码供学习者参考。这个例子通常会展示JSF的基本架构和关键概念,帮助新手快速入门。 **描述解析:** "直接在tomcat中发布使用" 提示...
### JSF简单入门教程知识点详解 #### 一、JSF简介 **1.1 JSF概念** JavaServer Faces (简称JSF) 是一种基于Java的标准技术,用于构建企业级Web应用。JSF的设计目的是简化Web应用程序的开发过程,通过提供一套标准化...
在本文中,我们将深入探讨如何在NetBeans IDE中开发基于JavaServer Faces (JSF)的应用。JSF是一种Java EE框架,专门设计用于构建Web应用程序的用户界面组件。它提供了一个模型-视图-控制器(MVC)架构,使得开发者...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
书中会介绍如何创建一个简单的JSF应用程序,设置开发环境,以及如何使用JSF的UI组件来构建动态网页。此外,还会讲解EL(Expression Language)和 Managed Beans,这两个是JSF中用于数据绑定和业务逻辑处理的关键技术...
这个"jsf 最简单的eclipse工程例子"应该会展示如何从零开始搭建一个基本的JSF应用,包括创建页面、编写Managed Bean和进行交互。对于初学者来说,这是一个很好的起点,可以理解JSF的核心概念和工作流程。通过实践和...
通过以上步骤,我们可以快速地搭建起一个基于JSF的Web应用开发环境,并创建一个简单的JSF页面用于输入查询条件。JSF的强大之处在于其简化了Web应用的开发流程,使得开发人员能够更加专注于业务逻辑的实现而非繁琐的...
**Facelets** 是JSF的一种视图层技术,它取代了早期的JSP(JavaServer Pages)作为JSF应用的标准视图表示。Facelets以其XML为基础的语法和模板结构,提供了更清晰、更易于维护的视图创建方式。它支持组件重用,便于...
1. **可视化开发**:WebSphere Studio 提供了一个可视化的界面,允许开发者通过简单的拖拽操作将JSF组件添加到JSP页面中。这种直观的方式有助于加快开发速度,并降低学习曲线。 2. **快速应用程序开发(RAD)**:...
通过 JSF ,您可以在页面中轻松自如地使用 WEB 组件、捕获用户行为所产生的事件、执行验证、建立页面导航…,当使用支持JSF的开发工具来开发 JSF 应用的时候,一切将会变得异常简单,GUI方式拖放组件、修改组件属性...
JavaServer Faces (简称JSF) 是一个基于Java EE标准的Web应用程序框架,旨在简化Web应用程序的开发过程。JSF的目标是提供一套标准化的方法来构建和管理用户界面。它不仅提供了一个标准的编程接口,还配备了一套丰富...
**JSF(JavaServer Faces)** 是一种Java技术,用于构建Web应用程序,它提供了一种组件模型和事件处理机制,简化了用户界面的开发。这个压缩包“简单jsf程序 供新手学习”显然是为了帮助初学者入门JSF,通过实践来...
JSF(JavaServer Faces)是一种Java技术,用于构建交互式用户界面,特别是在Web应用程序中。SSH,即Spring、Struts和Hibernate的组合,是Java开发中的一个流行框架栈,用于处理MVC(Model-View-Controller)架构。在...
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,主要用于构建Web应用程序。它简化了前端和后端的交互,通过组件模型、事件处理和生命周期管理提供了丰富的用户体验。在这个“用jsf写的简单聊天程序”...
JSF提供了组件库,使得创建动态、交互式的网页变得简单。 在“jsf第一个例子”中,我们通常会遇到以下关键概念: 1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用...
JavaServer Faces(JSF)是Java平台上的一个标准的、用于构建Web应用程序的MVC(Model-View-Controller)框架。它为开发者提供了丰富的组件库和事件处理机制,使得开发人员可以更高效地创建交互式的用户界面。JSF的...