- 浏览: 71853 次
- 性别:
- 来自: 东京
最新评论
-
JavaStudyEye:
讲解的很详细,呵呵
Ruby on Rails入门例子 -
greatwqs:
提供一个下载的例子岂不是更好?
Struts2.1+Spring3.0+JPA1.0(Hibernate3.3实现)例子 -
einsteinm:
老套路!
Struts+Spring+Hibernate添加用户例子 -
processlife:
个人感觉有些陈旧...
现在比较流行 appfuse 的ss ...
Struts+Spring+Hibernate添加用户例子 -
dhxyu:
看看你是怎么使用hibernate的
Struts+Spring+Hibernate添加用户例子
BookStore\src\main\webapp\WEB-INF
applicationContext.xml
<?xml version="1.0"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <!-- SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <property name="annotatedClasses"> <list> <value>bookstore.pbean.TBook</value> <value>bookstore.pbean.TCustomer</value> <value>bookstore.pbean.TOrder</value> <value>bookstore.pbean.TOrderDetail</value> </list> </property> <property name="annotatedPackages"> <list> <value>bookstore.pbean</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>org.postgresql.Driver</value> </property> <property name="url"> <value>jdbc:postgresql://localhost:5432/BookStore</value> </property> <property name="username"> <value>okada</value> </property> <property name="password"> <value>okada</value> </property> </bean> <!-- TransactionManager --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"><ref local="sessionFactory" /></property> </bean> <!-- enable the configuration of transactional behavior based on annotations --> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- DAO --> <bean id="BookDAOBId" class="bookstore.dao.hibernate.BookDAOImpl"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="CustomerDAOBId" class="bookstore.dao.hibernate.CustomerDAOImpl"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="OrderDAOBId" class="bookstore.dao.hibernate.OrderDAOImpl"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="OrderDetailDAOBId" class="bookstore.dao.hibernate.OrderDetailDAOImpl"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <!-- Logic Layer --> <bean id="LogicCustomerBId" class="bookstore.logic.CustomerLogicImpl"> <property name="customerdao"> <ref local="CustomerDAOBId" /> </property> </bean> <bean id="LogicBookBId" class="bookstore.logic.BookLogicImpl"> <property name="bookdao"> <ref local="BookDAOBId" /> </property> </bean> <bean id="LogicOrderBId" class="bookstore.logic.OrderLogicImpl"> <property name="bookdao"> <ref local="BookDAOBId" /> </property> <property name="customerdao"> <ref local="CustomerDAOBId" /> </property> <property name="orderdao"> <ref local="OrderDAOBId" /> </property> <property name="orderdetaildao"> <ref local="OrderDetailDAOBId" /> </property> </bean> <!-- Struts Action --> <bean name="/CreateUser" class="bookstore.action.CreateUserAction"> <property name="customerLogic"> <ref local="LogicCustomerBId" /> </property> </bean> <bean name="/Login" class="bookstore.action.LoginAction"> <property name="customerLogic"> <ref local="LogicCustomerBId" /> </property> <property name="bookLogic"> <ref local="LogicBookBId" /> </property> </bean> <bean name="/AddToCartAction" class="bookstore.action.AddToCartAction"> <property name="bookLogic"> <ref local="LogicBookBId" /> </property> </bean> <bean name="/CheckoutAction" class="bookstore.action.CheckoutAction"> <property name="bookLogic"> <ref local="LogicBookBId" /> </property> </bean> <bean name="/OrderAction" class="bookstore.action.OrderAction"> <property name="orderLogic"> <ref local="LogicOrderBId" /> </property> <property name="customerLogic"> <ref local="LogicCustomerBId" /> </property> </bean> <bean name="/SearchAction" class="bookstore.action.SearchAction"> <property name="bookLogic"> <ref local="LogicBookBId" /> </property> </bean> </beans>
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> <form-bean name="CreateUserActionName" type="bookstore.action.bean.CreateUserActionFormBean" /> <form-bean name="LoginActionName" type="bookstore.action.bean.LoginActionFormBean" /> <form-bean name="AddToCartActionName" type="bookstore.action.bean.AddToCartActionFormBean" /> <form-bean name="SearchActionName" type="bookstore.action.bean.SearchActionFormBean" /> </form-beans> <global-forwards> <forward name="illegalSession" path="/sessionError.vm" /> </global-forwards> <action-mappings> <action path="/CreateUser" type="org.springframework.web.struts.DelegatingActionProxy" name="CreateUserActionName" scope="request" validate="true" input="/createAccount.vm" > <forward name="UserCreated" path="/index.vm" /> <forward name="illegalCreateUser" path="/createAccount.vm" /> </action> <action path="/Login" type="org.springframework.web.struts.DelegatingActionProxy" name="LoginActionName" scope="request" > <forward name="LoginSuccess" path="/BookStore.vm" /> <forward name="illegalLogin" path="/index.vm" /> </action> <action path="/AddToCartAction" type="org.springframework.web.struts.DelegatingActionProxy" name="AddToCartActionName" scope="request" > <forward name="Continue" path="/BookStore.vm" /> </action> <action path="/CheckoutAction" type="org.springframework.web.struts.DelegatingActionProxy" name="CheckoutActionName" scope="request" > <forward name="ToCheck" path="/Check.vm" /> <forward name="illegalCheckout" path="/BookStore.vm" /> </action> <action path="/OrderAction" type="org.springframework.web.struts.DelegatingActionProxy" name="OrderActionName" scope="request" > <forward name="OrderSuccess" path="/Order.vm" /> </action> <action path="/SearchAction" type="org.springframework.web.struts.DelegatingActionProxy" name="SearchActionName" scope="request" > <forward name="SearchSuccess" path="/BookStore.vm" /> </action> </action-mappings> <message-resources parameter="ApplicationResources" key="org.apache.struts.action.MESSAGE" /> <message-resources parameter="MessageResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in> </struts-config>
toolbox.xml
<?xml version="1.0"?> <toolbox> <tool> <key>math</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.MathTool</class> </tool> <tool> <key>link</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.StrutsLinkTool</class> </tool> <!-- ordinarily the SecureLinkTool would simply replace the StrutsLinkTool if SSL Ext. is in use - in that case the key would be 'link' but it's 'slink' here to distinguish between the two. --> <tool> <key>slink</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.SecureLinkTool</class> </tool> <tool> <key>text</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.MessageTool</class> </tool> <tool> <key>errors</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.ErrorsTool</class> </tool> <tool> <key>messages</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.ActionMessagesTool</class> </tool> <tool> <key>form</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.FormTool</class> </tool> <tool> <key>tiles</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.TilesTool</class> </tool> <tool> <key>validator</key> <scope>request</scope> <class>org.apache.velocity.tools.struts.ValidatorTool</class> </tool> </toolbox>
velocity.properties
default.contentType=text/html; charset=Windows-31J input.encoding=Windows-31J output.encoding=Windows-31J
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>BookStore Application</display-name> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>velocity</servlet-name> <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class> <init-param> <param-name>org.apache.velocity.toolbox</param-name> <param-value>/WEB-INF/toolbox.xml</param-value> </init-param> <init-param> <param-name>org.apache.velocity.properties</param-name> <param-value>/WEB-INF/velocity.properties</param-value> </init-param> <load-on-startup>10</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>velocity</servlet-name> <url-pattern>*.vm</url-pattern> </servlet-mapping> </web-app>
BookStore\src\main\webapp
BookStore.vm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <center> <h2>商品一覧</h2> </center> <br> <form method="post" action="$link.setAction( "/SearchAction" )"> 検索: <input type="text" name="keyword"/> <input type="submit" value="検索" /> </form> #if( $messages.exist() ) <br> <font color="red"> $messages.get( "productalart" ) </font> <br> #end <form method="post" action="$link.setAction( "/AddToCartAction" )"> <table border="1"> #foreach ( $item in $ProductListView ) <tr> <th rowspan="2"> <input type="checkbox" name="selecteditems" value="$item.isbn" #if( $item.selected ) checked #end > </th> <td colspan="3"> $item.title </td> </tr> <tr> <td> $item.author </td> <td> $item.publisher </td> <td> $item.price 円 </td> </tr> #end </table> <br> <input type="submit" value="カートに追加" /> </form> <form method="post" action="$link.setAction( "/CheckoutAction" )"> <input type="submit" value="商品購入" /> </form> </body> </html>
Check.vm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <center> <h2>購入商品</h2> </center> <br><br> 以下が購入する商品と合計です。 <br> <table border="1"> #foreach ( $item in $ItemsToBuy.selecteditems ) #if( $item.selected ) <tr> <td> $item.title </td> <td> $item.author </td> </tr> <tr> <td> $item.publisher </td> <td> $item.price </td> </tr> #end #end </table> <br> <br> 合計: $ItemsToBuy.total 円 <form method="post" action="$link.setAction( "/OrderAction" )"> <input type="submit" value="注文する" /> </form> </body> </html>
createAccount.vm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <center> <h2>アカウント作成</h2> </center> <form action="$link.setAction( "/CreateUser" )" method="post"> 氏名: <input type="text" name="name" /><br> E-Mail: <input type="text" name="email" /><br> ログイン名: <input type="text" name="account" /><br> パスワード: <input type="password" name="passwd" /><br> パスワード(確認): <input type="password" name="passwd2" /><br> <input type="submit" value="アカウント作成" /> <input type="reset" value="リセット"/> </form> #if( $messages.exist() ) <br> <font color="red"> $messages.get( "illegalcreateuser" ) </font> <br> #end #if( $errors.exist() ) <br> <font color="red"> $errors.get( "illegalcreateuser" ) </font> <br> #end <a href="$link.setRelative("/index.vm" )">トップへ</a> </body> </html>
index.vm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <center> <h2>ログイン</h2> </center> <form action="$link.setAction( "/Login" )" method="post"> ログイン名: <input type="text" name="account" /><br> パスワード: <input type="password" name="passwd" /><br> <input type="submit" value="ログイン" /> <input type="reset" value="リセット"/> <br> #if( $messages.exist() ) <font color="red"> $messages.get( "illegallogin" ) </font> #end <br> アカウントを作成していない人は <a href="$link.setRelative( "/createAccount.vm" )">こちら</a> </form> </body> </html>
Order.vm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <center> <h2>注文確認</h2> </center> <br><br> 以下のとおり、注文を受け付けました。 <br> 商品: <br> <table border="1"> #foreach ( $item in $ItemsToBuy.selecteditems ) #if( $item.selected ) <tr> <td> $item.title </td> <td> $item.author </td> </tr> <tr> <td> $item.publisher </td> <td> $item.price </td> </tr> #end #end </table> <br> <br> 合計: $ItemsToBuy.total 円 <br> <br> <br> お客様情報 <br> <br> UserID: $Customer.uid <br> 氏名: $Customer.name <br> E-Mail: $Customer.email <br> <br> <a href="$link.setRelative( "/index.vm" )">トップに戻る</a> </body> </html>
sessionError.vm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <center> <h2>セッション エラー</h2> </center> <br> <br> セッション情報が不正です。アクセスが不正か、セッションが タイムアウトしました。 <br> <br> <a href="$link.setRelative( "/index.vm" )">トップ</a>に戻る。 </body> </html>
BookStore\src\test\java
(Null)
BookStore\target\classes
(生成的classes,略)
BookStore\target\test-classes
(Null)
BookStore\target
mvn-eclipse-cache.properties
#Temporary index for unavailable sources and javadocs #Sun Dec 07 21:28:00 JST 2008 junit\:junit\:3.8.1\:javadoc=true junit\:junit\:3.8.1\:sources=true
(欲知前事如何,请见一 )
代码来自日本的技术图书 :http://www.shuwasystem.co.jp/products/7980html/2197.html
发表评论
-
Struts2.1+Spring3.0+JPA1.0(Hibernate3.3实现)例子
2010-01-28 14:03 7659本文代码是传智播客黎活明老师所讲的《Spring2.5视频教程 ... -
Struts+Spring+iBATIS做的XML文件操作例子
2010-01-21 10:08 1068去年圣诞节前的一个例子,初版,给别人说明用的。 Str ... -
Struts1的版本差异——Action!
2009-12-25 13:44 887近来的项目要用Struts1.0.2框架,真够老的! 昨天模 ... -
中规模应用的开发(一)
2009-07-20 21:50 1211BookStore pom.xml <proje ... -
导入Velocity
2009-07-20 19:24 2352src\main\java\bookstore\action: ... -
导入Spring
2009-07-20 17:38 1228src\main\java\chap12app: Mai ... -
导入Maven
2009-07-20 17:27 1012一.Maven的展开 1.在 ... -
小规模应用的开发
2009-07-20 16:30 1124init: initdb dropdb BookSto ... -
导入Struts2
2009-07-20 15:54 887src: struts.xml <?xml ver ... -
导入Hibernate
2009-07-20 15:44 1179src\chap06app: Main.java pa ... -
JDBC登录
2009-07-20 15:31 1244LoginCheckServlet.java package ... -
JDBC
2009-07-20 15:18 706Main.java package chap05app; ... -
JSP/Servlet编程
2009-07-20 15:06 576PersonalInfoCheckServlet.java ... -
Spring Live-Spring Quick Start Tutorial
2007-03-02 11:35 1357http://sourcebeat.com/downloads ... -
Sysdeo Eclipse Tomcat Launcher plugin备份
2007-02-26 09:48 3059http://www.sysdeo.com/eclipse/t ... -
Struts+Spring+Hibernate添加用户例子
2007-02-02 12:41 4140由于jar太大,抓成图片以供下载. 图片在lib目录下. 数据 ... -
关于Struts+Hibernate分页的例子
2007-01-08 08:37 3021这个程序很久了,当时就查询分页这没有成功,一点遗憾:( ... -
测试 Enterprise Beans
2006-12-29 11:45 1717这个测试企业Beans的教程内容不多,却花费我很长时间。主要是 ... -
创建 J2EE 应用程序客户端
2006-12-29 10:24 1774确切地说,这个例子很失败! 从http://www.netbe ... -
J2EE 应用程序快速入门指南
2006-12-29 08:28 2251近来想系统地学习一下Java,NetBeas有较丰富的在线教程 ...
相关推荐
在大规模iOS开发中,Buck构建工具的应用实践逐渐成为行业内的一个热点话题。随着iOS应用项目的增长,无论是从代码量、团队规模、还是构建速度和效率等方面,都对现有的构建系统提出了更高的要求。在这篇关于《BUCK在...
亚马逊的大规模应用机器学习实践,展示了MLOps在机器学习模型开发和部署中的重要性。MLOps能够提高机器学习模型的质量和稳定性,提高开发效率和部署速度,降低开发成本和维护成本。 知识点: 1. 机器学习的生命...
《ANSYS APDL高级工程应用实例分析与二次开发》是由周宁编著的一本专业书籍,专注于探讨ANSYS软件中的高级应用技巧,特别是基于APDL(ANSYS参数化设计语言)的工程问题解决方法和二次开发技术。APDL是ANSYS软件的...
标题中的“自己开发的简单桌面应用”表明这是一个个人或独立开发者创建的计算机程序,主要设计为在用户桌面环境中运行。这种应用通常具有特定的功能,旨在解决用户日常操作中的一些问题或者提供某种服务。 描述中的...
AutoCAD2005作为开发平台,在其上进行二次开发主要通过VBA(Visual Basic for Applications)编程实现,该技术作为Microsoft Office应用程序中的自动化语言,同样适用于AutoCAD平台。二次开发的内容包括但不限于创建...
在服务器端应用开发中,C# 语言与Visual Studio 2015(VS2015)的组合是常用的选择,尤其对于那些需要进行二次开发的项目。C# 是一种面向对象的编程语言,由微软公司推出,设计用于.NET框架,支持多种编程范式,包括...
本教程《CATIA应用开发教程.doc》应该会详细介绍以上这些知识点,并通过实例演示如何进行具体的二次开发操作。学习并掌握这些内容,将使用户具备独立构建CATIA插件的能力,提升工作效率,实现个性化和专业化的设计...
《SQL应用开发参考手册》是郭鑫所著的一本针对SQL语言在实际应用中的开发指南。这本书涵盖了SQL的基础概念、语法、以及在不同场景下的高级应用,旨在帮助开发者更好地理解和运用SQL进行数据处理和数据库管理。 一、...
在Hadoop应用开发中,数据预处理是关键步骤,包括数据清洗、转换、归一化等,以确保数据质量和处理效率。 6. 案例分析: 课程中的案例实战部分可能涵盖电商数据分析、日志处理、推荐系统等,通过实际场景的应用,...
表设计是HBase应用开发中的一个关键环节,需要理解业务表设计的基本原则。设计时要考虑到RowKey的设计、表结构的规划、列族的定义等,这些因素都会对数据的存储效率和访问性能产生影响。 在学习HBase应用开发的过程...
企业由于行业不同、规模不同、管理者的管理理念不同,导致管理重点有差异,企业管 理呈多样性。传统的管理软件由于其设计水平有限,已很难满足用户的个性化需求,而专项 开发在时间上不可能适应企业管理的多变性, ...
MapGIS二次开发服务与资源是基于MapGIS IGSS的二次开发服务与资源,提供了一个高效、可靠、跨平台的开发框架,实现二次开发的应用开发。该平台提供了多种二次开发服务和资源,实现二次开发的快速开发和部署。 ...
4. **图形用户界面(GUI)**:在二次开发中,创建直观的用户界面至关重要。Rhino的API允许开发者创建自定义对话框和控件,以增强用户体验。 5. **文件导入导出**:通过二次开发,开发者可以扩展Rhino对不同格式文件...
同时,了解如何配置、优化和监控这些中间件,以确保系统的稳定性和高效运行,是Java中间件技术及其应用开发中的关键技能。通过深入学习和实践,开发者可以构建出满足高并发、高性能、高可维护性要求的企业级应用。
在华为提供的培训资料中,我们得到了关于MapReduce应用开发的详细说明,包括它的定义、应用场景、开发过程以及一个典型程序——WordCount的实现。 首先,MapReduce定义上可以被理解为三层含义的集合。它是一个基于...
2. 跨系统开发工具的普及:随着React Native和Flutter等跨平台开发工具的发展,它们在多系统兼容性、节约开发资源、快速部署和保证用户体验方面的优势明显,使得这些工具成为了开发中的新热点。 二、移动应用服务...
2. **数据库系统**:在Java Web应用中,常见的数据库管理系统如MySQL,它是一个开源、轻量级的关系型数据库,适合中小规模应用。连接MySQL通常使用JDBC(Java Database Connectivity),它是Java平台的标准接口,...