`
kukuqiu001
  • 浏览: 210364 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring2.0+hibernate3.1+struts1.2 ssh开发的简单的应用1

阅读更多
这个简单的应用是入门级别的 ,方便大家入门
1,类似与springside(http://www.springside.org.cn/)中的例子helloworld具有的功能,
2,没有了springside中的将网页中的表单输出xls中的功能,
3,将那个helloworld例子中的分页功能简单化了
4,增加了添加用户或修改用户时的,javaMail通知的功能,
5,还有原来的对数据的增删改查

tomcat6.0作为服务器,mysql作为数据库

包结构:
com.hello.model 存放应用的pojo类
com.hello.dao,com.hello.dao.impl 数据层,使用hibernate封装
com.hello.service,com.hello.service.impl 业务逻辑层,将页面表现同数据分离
com.hello.web  存放分页的类和资源文件
com.hello.web.action 表现层,存放struts的action文件
基本配置:
数据库文件,数据库中的数据自己添加
helloworld.sql
create database helloworld;
use helloworld;
    create table `helloworld`.`user`(
        `id` int unsigned not null auto_increment,
       `name` varchar(45) default '' not null,
       `email` varchar(45),
       `descn` varchar(45),
        primary key (`id`)
    );


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">
	<!-- 对表单传递的数据强制转换 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<!-- 设置的是gbk,因为我的mysql数据库的字符设置是gbk,
		最好同你的数据库的字符设置相同,否则容易乱码-->
		<init-param>
			<param-name>encoding</param-name>
			<param-value>gbk</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 配置spring文件 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>

	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
	<!-- 配置struts文件 -->
	<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>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
		http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url"
			value="jdbc:mysql://localhost:3306/helloworld">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="123456"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/hello/model/User.hbm.xml</value>
			</list>
		</property>
	</bean>

	<bean id="mailSender"
		class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.163.com" />
		<property name="port" value="25" />
		<property name="username" value="你的用户名" />
		<property name="password" value="你的密码" />
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.timeout">25000</prop>
			</props>
		</property>
	</bean>
	<!-- 配置事务管理 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<bean id="userDAO" class="com.hello.dao.impl.UserDAOImpl">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<bean id="mailAdvice" class="com.hello.service.impl.SendMail">
		<property name="mailSender" ref="mailSender"></property>
	</bean>
	<!-- aop代理对象包含advisor和advice的拦截链,advice表示对方法的增强(切面)
		而pointcut表示一个切入点 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="List" read-only="true" />
			<tx:method name="*" />
		</tx:attributes>
	</tx:advice>
	
	<!-- advisor 必须的有一个advice增强+一个切入点,才能实现增强方法的功能-->
	<aop:config>
		<!-- 增强事务功能 -->
		<aop:advisor
			pointcut="execution(* com.hello.service.UserService.*(..))"
			advice-ref="txAdvice" />
		<!--添加或修改用户时发送email -->
		<aop:advisor
			pointcut="execution(* com.hello.service.UserService.save(*..User))"
			advice-ref="mailAdvice" />
	</aop:config>

	<bean id="userService"
		class="com.hello.service.impl.UserServiceImpl">
		<property name="userDAO" ref="userDAO"></property>
	</bean>
</beans>

struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
	<form-beans>
		<form-bean name="userForm"
			type="org.apache.struts.validator.LazyValidatorForm" />
	</form-beans>

	<global-exceptions />
	<global-forwards />
	<action-mappings>
		<action attribute="userForm" input="/index.jsp" name="userForm"
			validate="false" path="/user" parameter="method" scope="request">
			<forward name="list" path="/pages/list.jsp" />
			<forward name="edit" path="/pages/edit.jsp" />
		</action>
	</action-mappings>
	<!-- 由spring代理页面的跳转 -->
	<controller>
		<set-property property="processorClass"
			value="org.springframework.web.struts.DelegatingRequestProcessor" />
	</controller>
	<message-resources
		parameter="com.hello.web.struts.ApplicationResources" />

	<!-- spring 代理action的插件 -->
	<plug-in
		className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation"
			value="/WEB-INF/action-servlet.xml" />
	</plug-in>

	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property property="pathnames"
			value="/WEB-INF/validator-rules.xml,
                             /WEB-INF/validation.xml" />
	</plug-in>

</struts-config>

action-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	<bean name="/user" class="com.hello.web.action.UserAction">
		<property name="userService" ref="userService"></property>
	</bean>
</beans>

源代码文件:
前面没有添加jta.jar,出现java.lang.NoClassDefFoundError: javax/transaction/TransactionManager。现已改正,在tomcat5.5上还暂时未通过
http://cid-741baba43d6d4c42.skydrive.live.com/self.aspx/Public/helloworld2.7z
分享到:
评论
1 楼 evancess 2008-09-18  
我在struts-config.xml 没配置   
<controller> 
        <set-property property="processorClass"             value="org.springframework.web.struts.DelegatingRequestProcessor" /> </controller> 

但是我是这样写的
<action attribute="saleForm" input="/sale/sale.jsp"
name="saleForm" parameter="op" path="/sale" scope="request" type="org.springframework.web.struts.DelegatingActionProxy" validate="false"/>

在action-servlet.xml文档里配置这样

<!-- 配置销售部action代理 -->
<bean name="/sale" class="com.monster.struts.action.SaleAction"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="saleServices">
<ref bean="saleServices" />
</property>
</bean>

访问路径/sale.do?op=addSale发生错误如下
java.lang.NoSuchMethodException: Action[/sale] does not contain specified method (check logs)
请问你知道是怎么回事吗?

相关推荐

    Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3(第二部分)

    Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3 SSH

    Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3(第一部分)

    Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3内个框架的集成

    struts1.2+spring2.0+hibernate3.1jar包

    Struts1.2、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,它们在2000年代中期至后期广泛应用于构建基于Java的Web应用程序。这个组合通常被称为“SSH”三位一体,各自负责不同的职责: 1. **Struts1.2**...

    Struts2.1.6+Struts2.0+Hibernate3.1整合示例

    开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate3.1、MyEclipse 5.5、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE导入工程 2、把工程中的“演示数据脚本.sql”导入到...

    struts1.2+spring2.0+hibernate3.1集成开发详解

    ### Struts 1.2 + Spring 2.0 + Hibernate 3.1 集成开发详解 #### 1. 引言 随着Java Web应用的发展,越来越多的企业级项目选择了Struts、Spring与Hibernate(简称SSH)这三种框架进行集成开发。本篇文章将通过...

    struts1.2+spring2.0+hibernate3.1框架所需jar包

    在这个“struts1.2+spring2.0+hibernate3.1框架所需jar包”压缩包中,包含了这三个框架的核心库和其他必要的依赖,以便于开发者在项目中集成和使用。 **Struts 1.2** 是一个基于MVC设计模式的Java Web框架,它使得...

    struts1.2+spring2.0+hibernate3.1实例

    Struts1.2、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,被称为SSH(Struts-Spring-Hibernate)集成框架。这个小实例为学习者提供了使用这三个框架协同工作的基础示例,有助于理解它们如何在实际项目中...

    Struts2.0+Spring2.0+Hibernate3.1整合

    ### Struts2.0+Spring2.0+Hibernate3.1 整合知识点详解 #### 一、项目背景与概述 随着企业应用的发展,越来越多的系统需要具备强大的业务逻辑处理能力以及灵活的数据持久化功能。Struts2作为MVC框架之一,Spring...

    struts1.2+spring2.0+hibernate3.1框架整合实例

    采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...

    ssh(struts2+spring2.0+hibernate3.1)上传下载例子

    SSH(Struts2 + Spring2.0 + Hibernate3.1)是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。这个上传下载例子是基于SSH框架实现的一个功能模块,它展示了如何在Web应用中处理文件的上传和...

    struts2.0+spring2.0+hibernate3.1

    Struts2.0、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,通常被称为SSH(Struts2、Spring、Hibernate)架构。这个仓库管理系统是基于SSH搭建的,展示了如何在实际项目中整合这三个框架进行数据管理。 ...

    Struts1.3+2.0+Hibernate3.1+Spring3.1全套API及教程

    内含Struts1.3 API、Struts2.0 API、Struts1.3标签、Hibernate3.1教程、Hibernate3.1API、Spring3.0 API、Spring3.1API。SSH应有尽有,API均是CHM格式,方便使用。教程为pdf格式。

    struts2.0+hibernate3.1+spring2.0实例源码

    Struts2、Hibernate3.1和Spring2.0是经典的Java Web开发框架组合,被称为SSH。这个实例源码集合提供了一个完整的项目示例,旨在帮助初学者理解和掌握这三大框架的整合应用。以下是对这三个框架及其整合的详细介绍: ...

    Struts2.0+Hibernate3.1+Spring2.0 全套API和教程

    Struts2.0、Hibernate3.1和Spring2.0是Java Web开发中经典的三大框架,它们共同构建了所谓的SSH(Struts2、Spring、Hibernate)集成开发环境,为开发者提供了强大的模型-视图-控制器(MVC)架构支持。这个压缩包包含...

    SSH整合实例教程Struts1.2 + hibernate3.1 + spring2.0

    eclipse整合Struts1.2 + hibernate3.1 + spring2.0 相关链接:http://blog.csdn.net/shellwin/archive/2010/07/02/5708865.aspx

    SSH框架包,spring2.0+struts2+hibernate3.1

    SSH框架是Java开发中常用的三大框架集合,包括Spring、Struts和Hibernate,它们协同工作以构建高效、可维护的企业级应用程序。在这个特定的压缩包中,我们拥有Spring 2.0、Struts 2和Hibernate 3.1的版本,以及JDBC...

    远程教育系统(Struts1.2+Hibernate3.1+Spring2.0+Tomcat5.0+SqlServer2005)

    远程教育系统是一个基于Java技术栈的在线学习平台,利用了Struts1.2、Hibernate3.1、Spring2.0和Tomcat5.0等组件,搭配SqlServer2005数据库,构建了一个功能完善的系统。这里我们将深入探讨这些技术及其在远程教育...

    SSH整合jar包(eclipse3.2 + myeclipse5.5 + Struts1.2 + Hibernate3.1 + Spring2.0测试通过)

    很多人在做SSH整合的时候会出现各种异常,其实一看异常类型根本就不是自己书写的代码出了问题,而是MyEclipse所提供的jar包有问题,很容易...Hibernate3.1 + Spring2.0测试通过的,若出现jar包冲突的朋友可以下载下来使用!

    Struts1.2+Spring1.2+HIbernate3.1整合示例代码

    Struts1.2、Spring1.2和Hibernate3.1是经典的Java企业级开发框架组合,通常被称为SSH(Struts + Spring + Hibernate)集成。这个整合示例代码提供了一个全面的学习资源,帮助开发者理解如何将这三个强大的框架有效地...

    SSH资源环境搭建Struts2+Spring2+Hibernate3.1

    SSH资源环境搭建,ssh开发配置教程,以供参考; 开发环境:MyEclipse6.0+Tomcat5.0+SQLServer2000 配置环境:Struts2+Spring2+Hibernate3.1

Global site tag (gtag.js) - Google Analytics