- 浏览: 1016957 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
JSF 本身提供了强大的 Bean 管理功能。但 Spring 作为一种轻量的容器,在管理 Bean方面有着不可替代的优势,使用起来很方便 。在 Spring 流行的今天,怎么能少了在 JSF 中整合 Spring 呢?下面的示例比较简单,但也能清楚的表达如何将 JSF+Spring 两者互相整合起来。
整个示例,通过输入页面输入特定的字符串,在后面查找此字符串对应的数值,然后展现给客户,如果没有找到则提示错误。
一、
页面
1.输入页面:
stockInput.jsp
<%
@page contentType
=
"
text/html
"
%>
<% @page pageEncoding = " UTF-8 " %>
<% @taglib prefix = " f " uri = " http://java.sun.com/jsf/core " %>
<% @taglib prefix = " h " uri = " http://java.sun.com/jsf/html " %>
< f:view >
< html >
< head >
< title > 字符输入页面 </ title >
</ head >
< body >
< h:form id = " stockForm " >
< h1 >
请输入一个字符串,如ABC或DEF或GHI或JKL
</ h1 >
< p >
< h:inputText id = " stockSymbolInput " value = " #{stockBean.symbolName} "
required = " true " >
</ h:inputText >
</ p >
< h:commandButton id = " stockSubmit " type = " submit " value = " 提交 "
action = " #{stockBean.findStockValue} " >
</ h:commandButton >
</ h:form >
</ body >
</ html >
</ f:view >
<% @page pageEncoding = " UTF-8 " %>
<% @taglib prefix = " f " uri = " http://java.sun.com/jsf/core " %>
<% @taglib prefix = " h " uri = " http://java.sun.com/jsf/html " %>
< f:view >
< html >
< head >
< title > 字符输入页面 </ title >
</ head >
< body >
< h:form id = " stockForm " >
< h1 >
请输入一个字符串,如ABC或DEF或GHI或JKL
</ h1 >
< p >
< h:inputText id = " stockSymbolInput " value = " #{stockBean.symbolName} "
required = " true " >
</ h:inputText >
</ p >
< h:commandButton id = " stockSubmit " type = " submit " value = " 提交 "
action = " #{stockBean.findStockValue} " >
</ h:commandButton >
</ h:form >
</ body >
</ html >
</ f:view >
2.输出页面:stockOutputFailure.jsp
<%
@page contentType
=
"
text/html
"
%>
<% @page pageEncoding = " UTF-8 " %>
<% @taglib prefix = " f " uri = " http://java.sun.com/jsf/core " %>
<% @taglib prefix = " h " uri = " http://java.sun.com/jsf/html " %>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN "
" http://www.w3.org/TR/html4/loose.dtd " >
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=UTF-8 " >
< title > 取得字符串所对应的值 </ title >
</ head >
< body >
< f:view >
< h1 >
所输入的字符串
< h:outputText value = " #{stockBean.symbolName} " >
</ h:outputText >
对应的值是
< h:outputText value = " #{stockBean.symbolValue} " >
</ h:outputText >
</ h1 >
</ f:view >
</ body >
</ html >
<% @page pageEncoding = " UTF-8 " %>
<% @taglib prefix = " f " uri = " http://java.sun.com/jsf/core " %>
<% @taglib prefix = " h " uri = " http://java.sun.com/jsf/html " %>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN "
" http://www.w3.org/TR/html4/loose.dtd " >
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=UTF-8 " >
< title > 取得字符串所对应的值 </ title >
</ head >
< body >
< f:view >
< h1 >
所输入的字符串
< h:outputText value = " #{stockBean.symbolName} " >
</ h:outputText >
对应的值是
< h:outputText value = " #{stockBean.symbolValue} " >
</ h:outputText >
</ h1 >
</ f:view >
</ body >
</ html >
3 .错误处理页面: stockOutputFailure.jsp
<%
@page contentType
=
"
text/html
"
%>
<% @page pageEncoding = " UTF-8 " %>
<% @taglib prefix = " f " uri = " http://java.sun.com/jsf/core " %>
<% @taglib prefix = " h " uri = " http://java.sun.com/jsf/html " %>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN "
" http://www.w3.org/TR/html4/loose.dtd " >
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=UTF-8 " >
< title > 错误页面 </ title >
</ head >
< body >
< f:view >
< h1 >
所查找的字符串
< h:outputText value = " #{stockBean.symbolName} " >
</ h:outputText >
不存在,请再次查找 !
</ h1 >
</ f:view >
</ body >
</ html >
<% @page pageEncoding = " UTF-8 " %>
<% @taglib prefix = " f " uri = " http://java.sun.com/jsf/core " %>
<% @taglib prefix = " h " uri = " http://java.sun.com/jsf/html " %>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN "
" http://www.w3.org/TR/html4/loose.dtd " >
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=UTF-8 " >
< title > 错误页面 </ title >
</ head >
< body >
< f:view >
< h1 >
所查找的字符串
< h:outputText value = " #{stockBean.symbolName} " >
</ h:outputText >
不存在,请再次查找 !
</ h1 >
</ f:view >
</ body >
</ html >
二、 后台处理 Bean
StockValueFetcher.java
package
com.sterning.springjsf;
import java.util. * ;
public class StockValueFetcher {
private Map < String, String > stockSymbolsAndValues;
private String symbolName;
private String symbolValue;
public StockValueFetcher() {
stockSymbolsAndValues = new HashMap < String, String > ();
stockSymbolsAndValues.put( " ABC " , " 10 " );
stockSymbolsAndValues.put( " DEF " , " 20 " );
stockSymbolsAndValues.put( " GHI " , " 30 " );
stockSymbolsAndValues.put( " JKL " , " 40 " );
}
public String getSymbolName() {
return symbolName;
}
public void setSymbolName(String symbolName) {
this .symbolName = symbolName;
}
public String getSymbolValue() {
return symbolValue;
}
public void setSymbolValue(String symbolValue) {
this .symbolValue = symbolValue;
}
public String findStockValue() {
boolean symbolFound = stockSymbolsAndValues.containsKey(symbolName);
if (symbolFound) {
symbolValue = stockSymbolsAndValues.get(symbolName);
return " stockOutputSuccess " ;
} else {
return " stockOutputFailure " ;
}
}
}
import java.util. * ;
public class StockValueFetcher {
private Map < String, String > stockSymbolsAndValues;
private String symbolName;
private String symbolValue;
public StockValueFetcher() {
stockSymbolsAndValues = new HashMap < String, String > ();
stockSymbolsAndValues.put( " ABC " , " 10 " );
stockSymbolsAndValues.put( " DEF " , " 20 " );
stockSymbolsAndValues.put( " GHI " , " 30 " );
stockSymbolsAndValues.put( " JKL " , " 40 " );
}
public String getSymbolName() {
return symbolName;
}
public void setSymbolName(String symbolName) {
this .symbolName = symbolName;
}
public String getSymbolValue() {
return symbolValue;
}
public void setSymbolValue(String symbolValue) {
this .symbolValue = symbolValue;
}
public String findStockValue() {
boolean symbolFound = stockSymbolsAndValues.containsKey(symbolName);
if (symbolFound) {
symbolValue = stockSymbolsAndValues.get(symbolName);
return " stockOutputSuccess " ;
} else {
return " stockOutputFailure " ;
}
}
}
三、
配置文件
1 . WEB-INF/faces-config.xml
<?
xml version='1.0' encoding='UTF-8'
?>
< faces-config version ="1.2"
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" >
< application >
< variable-resolver >
org.springframework.web.jsf.DelegatingVariableResolver
</ variable-resolver >
</ application >
<!-- 下面的代码在没有使用Spring时起一样的作用
<managed-bean>
<managed-bean-name>stockBean</managed-bean-name>
<managed-bean-class>
com.sterning.springjsf.StockValueFetcher
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
-->
< navigation-rule >
< description > Navigation from the hello page. </ description >
< from-view-id > /stockInput.jsp </ from-view-id >
< navigation-case >
< from-outcome > stockOutputSuccess </ from-outcome >
< to-view-id > /stockOutputSuccess.jsp </ to-view-id >
</ navigation-case >
< navigation-case >
< from-outcome > stockOutputFailure </ from-outcome >
< to-view-id > /stockOutputFailure.jsp </ to-view-id >
</ navigation-case >
</ navigation-rule >
</ faces-config >
< faces-config version ="1.2"
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" >
< application >
< variable-resolver >
org.springframework.web.jsf.DelegatingVariableResolver
</ variable-resolver >
</ application >
<!-- 下面的代码在没有使用Spring时起一样的作用
<managed-bean>
<managed-bean-name>stockBean</managed-bean-name>
<managed-bean-class>
com.sterning.springjsf.StockValueFetcher
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
-->
< navigation-rule >
< description > Navigation from the hello page. </ description >
< from-view-id > /stockInput.jsp </ from-view-id >
< navigation-case >
< from-outcome > stockOutputSuccess </ from-outcome >
< to-view-id > /stockOutputSuccess.jsp </ to-view-id >
</ navigation-case >
< navigation-case >
< from-outcome > stockOutputFailure </ from-outcome >
< to-view-id > /stockOutputFailure.jsp </ to-view-id >
</ navigation-case >
</ navigation-rule >
</ faces-config >
注意我使用中文注释的地方。
2 . WEB-INF/applicationContext.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
< bean id ="stockBean"
class ="com.sterning.springjsf.StockValueFetcher" >
</ bean >
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
< bean id ="stockBean"
class ="com.sterning.springjsf.StockValueFetcher" >
</ bean >
3 . WEB-INF/web.xml
<?
xml version="1.0" encoding="UTF-8"
?>
< web-app version ="2.5" 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-app_2_5.xsd" >
< listener >
< listener-class >
org.springframework.web.context.ContextLoaderListener
</ listener-class >
</ listener >
< context-param >
< param-name > contextConfigLocation </ param-name >
< param-value > /WEB-INF/applicationContext.xml </ param-value >
</ context-param >
< 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-config >
< session-timeout > 30 </ session-timeout >
</ session-config >
< welcome-file-list >
< welcome-file > faces/stockInput.jsp </ welcome-file >
</ welcome-file-list >
</ web-app >
< web-app version ="2.5" 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-app_2_5.xsd" >
< listener >
< listener-class >
org.springframework.web.context.ContextLoaderListener
</ listener-class >
</ listener >
< context-param >
< param-name > contextConfigLocation </ param-name >
< param-value > /WEB-INF/applicationContext.xml </ param-value >
</ context-param >
< 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-config >
< session-timeout > 30 </ session-timeout >
</ session-config >
< welcome-file-list >
< welcome-file > faces/stockInput.jsp </ welcome-file >
</ welcome-file-list >
</ web-app >
参考文献: http://www.javabeat.net/articles/2007/10/integrating-spring-and-jsf/
发表评论
-
调试jdk中的源码,查看jdk局部变量
2013-06-15 23:30 1055调试jdk中的源码,查看jdk局部变量 2012-04 ... -
Eclipse快捷键 10个最有用的快捷键<转>
2013-04-11 23:28 1082Eclipse中10个最有用的快捷键组合 一个Eclip ... -
Lucene 3.6 中文分词、分页查询、高亮显示等
2012-12-09 23:35 18241、准备工作 下载lucene 3.6.1 : htt ... -
Maven实战(九)——打包的技巧(转)
2012-10-12 00:41 941“打包“这个词听起 ... -
基于Maven的web工程如何配置嵌入式Jetty Server开发调试环境(转)
2012-10-12 00:28 9421、首先在web工程的POM文件里添加依赖jar包如下: ... -
轻轻松松学Solr(1)--概述及安装[转]
2012-09-18 14:59 998概述 这段时间对企 ... -
分析Netty工作流程[转]
2012-09-04 19:02 893下面以Netty中Echo的例 ... -
让eclipse在ubuntu下面好看一点
2012-03-27 10:17 925<p> </p> <h1 cla ... -
zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)[转]
2012-01-12 17:59 1653安装和配置详解 本文 ... -
Jakarta-Common-BeanUtils使用笔记[转]
2012-01-10 14:13 1160Jakarta-Common-BeanUtils ... -
一个关于Java Thread wait(),notify()的实用例【转】
2012-01-07 16:05 1024///// // ProducerConsume ... -
Java基础:Java中的 assert 关键字解析【转】
2012-01-06 19:50 1066J2SE 1.4在语言上提供了 ... -
一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发[转]
2012-01-06 15:02 1271六种异常处理的陋习 ... -
如何解决HP QC(Quality Center)在Windows 7下不能工作的问题
2011-12-26 10:48 1588HP QC(Quantity Center) 是一款不错的测 ... -
JAVA读写文件,中文乱码 【转】
2011-12-19 23:43 2123最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。 ... -
Java 6 JVM参数选项大全(中文版)【转】
2011-12-19 19:51 974Java 6 JVM参数选项大全(中文版) 作者 ... -
使用assembly plugin实现自定义打包【转】
2011-12-13 01:58 973在上一篇文章中,讨论到在对maven的机制不熟悉的情况下,为了 ... -
使用maven ant task实现非标准打包[转]
2011-12-13 01:56 1050maven很强大,但是总有些事情干起来不是得心应手,没有使用a ... -
Java日期转换SimpleDateFormat格式大全【转】
2011-12-08 20:22 131924小时制时间 显示: public clas ... -
使用Spring的表单标签库
2011-11-22 20:08 107813.9. 使用Spring的 ...
相关推荐
JSF+Spring+Ibatis示例,对学习JAVA企业应用开发有巨大的帮助!
【标题】"jsf+spring+hibernate示例,使用MyEclipse工具"涉及到的是一个集成开发环境MyEclipse中的Web应用项目,这个项目利用了JavaServer Faces(JSF)、Spring框架和Hibernate ORM技术来构建后端业务逻辑。JSF是...
- `dempJsf`可能是项目实例的名字,包含了一个集成Spring和JSF的示例代码。在实践中,我们需要解压文件,查看`web.xml`、`spring-context.xml`和JSF相关配置,学习它们是如何配合工作的。 综上所述,Spring和JSF的...
每个部分的rar文件分别对应不同的主题,例如`JSF1.rar`至`JSF3.rar`可能包含了JSF的基础知识、进阶用法以及实践示例;`Hibernate1.rar`至`Hibernate4.rar`可能详细讲解了Hibernate的配置、数据持久化、查询语言HQL等...
在 JCatalog 示例中,Spring 可能用于实现业务服务接口,提供对 Hibernate DAO 的封装,而 JSF 的 Managed Beans 作为视图与控制器的结合,负责处理用户请求并调用 Spring 服务。此外,安全控制也应纳入设计考虑,如...
这个简单的示例展示了Spring Boot的便利性和JSF的强大功能,但实际应用中,你还可以结合Spring Data进行数据访问,利用Spring Security进行安全控制,以及其他各种Spring生态系统的组件,构建更复杂、功能丰富的Web...
"jsf+spring+servlet的demo"是一个结合这三个技术的示例项目,旨在展示如何将它们协同工作来创建一个完整的Web应用。 首先,JSF作为前端框架,主要负责生成和处理用户界面。它通过UI组件库(如PrimeFaces或MyFaces...
<title>JSF - Mybatis - Spring整合示例 提交" action="#{userBean.submit}" /> ``` 当用户点击“提交”按钮时,`submit()`方法会被调用,此时Spring管理的Mybatis会执行相应的数据库操作。 总结来说...
#### 五、JSF + Spring + JPA 整合应用示例 根据提供的部分内容,我们可以看到一个详细的关于如何在BEA Workshop Studio 3.3 build 608中开发基于JSF/Spring/JPA的Web应用的过程。以下是一些关键步骤的总结: 1. *...
总结,"jsf+spring+hinernate实例"是结合了前端、服务层和数据访问层的典型企业级应用架构示例,对于学习和掌握Java Web开发有着极高的参考价值。通过实践这个项目,开发者可以提升自己在分布式系统开发中的技能,更...
5. **AppFuse示例**:`appfuse2`可能是包含一个使用JSF、Spring和Hibernate的示例项目。AppFuse是一个快速应用开发框架,它提供了一个基础架构,用于创建基于Spring、Hibernate和JSF的Web应用程序。通过分析这个项目...
【JSF+Spring+Hibernate 实例详解】 JavaServer Faces (JSF) 技术是 Java 平台上的一个用户界面框架,特别适用于基于 Model-View-Controller (MVC) 架构的应用程序。JSF 提供了丰富的组件库和生命周期管理,使得...
**JSF、Spring和Hibernate是Java开发中的三大框架,它们分别在用户界面、业务层和服务层发挥着核心作用。JSF(JavaServer Faces)专注于构建Web用户界面,Spring提供了全面的依赖注入和AOP(面向切面编程)支持,而...
这个综合示例对于理解如何在实际项目中整合这些技术是非常有价值的,它展示了如何利用JSF构建用户界面,Spring作为应用的中枢,以及Hibernate处理数据持久化。通过学习和实践这个示例,开发者可以提升其在企业级Java...
标题 "JSF+Spring+Hibernate 配置" 涉及到的是三个非常重要的Java Web开发框架的集成:JavaServer Faces (JSF),Spring框架,以及Hibernate ORM。这些技术组合在一起,可以创建出一个功能强大、灵活性高的企业级应用...
【JSF+Spring+Hibernate集成概述】 JSF(JavaServer Faces)是一种基于MVC(Model-View-Controller)模式的开源框架,旨在简化Java Web应用程序的开发。它提供了丰富的组件库和事件处理机制,使开发者能更高效地...
标题中的"jsf + spring + hibernate"是一个经典的Java企业级应用开发组合,这涉及到三个主要的技术栈。JSF(JavaServer Faces)是用于构建用户界面的MVC框架,Spring是一个全面的后端开发框架,提供了依赖注入、AOP...
### JSF + Spring + Hibernate 集成配置详解 #### 一、概述 在现代企业级应用开发中,集成JSF(JavaServer Faces)、Spring框架与Hibernate是非常常见的做法。这样的组合能够充分发挥各技术栈的优势:JSF负责前端...