`
xiaoniu001
  • 浏览: 5689 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

spring+ibatis+struts的web项目

阅读更多
最近复习一下spring和ibatis的相关知识,做个简单的项目实践一下

准备工作:
myeclipse7.5+tomcat 6.0+MySQL
所需要的jar包:

下面是项目的实现:
MySQL:
数据库名:xxx,表名:user
列名和字段类型:

项目结构:

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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
<!-- 初始化参数 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
  <!-- spring的启动 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- struts的启动 -->
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

applicationContext.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName"  
    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 id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />  
        <property name="url" value="jdbc:mysql://localhost:3306/xxx" />  
        <property name="username" value="root" />  
        <property name="password" value="kyo" />
	</bean>
	
	<bean id="client" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource">  
            <ref local="dataSource"/>  
        </property>  
        <property name="configLocation" value="classpath:com/kyo/resources/sqlmap-config.xml">  
        </property>
	</bean>
	
	<bean id="userDAO" class="com.kyo.DAO.IbatisUserDAO">
		<property name="client" ref="client"></property>
	</bean>
	
	<bean id="userService" class="com.kyo.service.UserService">
		<property name="userDAO" ref="userDAO"></property>
	</bean>
	
	<bean id="LoginAction" class="com.kyo.actions.Login">
		<property name="userService" ref="userService"></property>
	</bean>
</beans>

sqlmap-config.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
	 <sqlMap resource="com/kyo/resources/user.xml"/>
</sqlMapConfig>   

action中Login类的设置:
package com.kyo.actions;

import java.util.List;

import com.kyo.model.User;
import com.kyo.service.IUserService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;

public class Login extends ActionSupport implements ModelDriven<User>,
		Preparable {

	private String id;
	private User user;
	private List<User> users;
	private IUserService userService;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public List<User> getUsers() {
		return users;
	}

	public void setUsers(List<User> users) {
		this.users = users;
	}

	public void setUserService(IUserService userService) {
		this.userService = userService;
	}

	public void prepare() throws Exception {
		if (id == null || id.length() == 0)
			user = new User();
		else
			user = userService.getUserById(Integer.parseInt(id));
	}

	public User getModel() {
		return user;
	}

	public String execute() {
		if (userService.isLogin(user))
			return SUCCESS;
		return INPUT;
	}

	public String findAllUsers() {
		users = userService.getAllUsers();
		if (users.size() != 0)
		{
			return SUCCESS;
		}
			
		else
			return ERROR;
	}

}

struts.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC  
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
        "http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>  
    <constant name="struts.objectFactory.spring.autoWire" value="type" />  
    <constant name="struts.objectFactory" value="spring" />  
    <include file="struts-default.xml"/>  
    <package name="struts2" extends="struts-default">  
    <default-interceptor-ref name="paramsPrepareParamsStack" />  
        <!-- aciton的class为applicationContext.xml中的注册名 -->  
        <action name="login" class="LoginAction" method="execute">  
            <result name="success">/success.jsp</result>  
            <result name="input">/index.jsp</result>  
        </action>   
        <action name="show" class="LoginAction" method="findAllUsers">  
            <result name="success">/list.jsp</result>  
            <result name="error">/error.jsp</result>  
        </action>  
    </package>  
</struts>

其它的诸如model层、DAO层、service层大同小异,不一一赘述。


页面很简单,
登录页面:

展示数据页面:


评论:这次实践中碰到很多异常,查阅资料中,也碰到很多相关性的问题。
比如:
1.Ibatis中的配置文件sqlmap-config.xml和user.xml头部很容易出错,需注意
sqlmap-config.xml
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

user.xml
<!DOCTYPE sqlMap      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

如果出错,会报出
引用

Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "sqlMapConfig".

2.Ibatis中client配置属性路径问题
<property name="configLocation" value="classpath:com/kyo/resources/sqlmap-config.xml">  
</property>


3.Ibatis关键点,必须配置org.springframework.orm.ibatis.SqlMapClientFactoryBean,否则会出现空指针错误,ibatis不能起作用

4.另外很多问题都是由于jar包引用冲突,缺失jar包等问题,碰到这些问题需要小心排查,实在不行,百度知道,你就知道。






  • 大小: 51.9 KB
  • 大小: 25.4 KB
  • 大小: 41.4 KB
  • 大小: 25.1 KB
  • 大小: 24.6 KB
分享到:
评论
12 楼 yinxiaoyong1987 2011-02-22  
这个是struts2内部的一个文件..
11 楼 xchao 2011-02-19  
写道
<include file="struts-default.xml"/>   

弱弱的问下,这个文件的内容是怎样的?


10 楼 zhoushuping 2011-02-18  
ibatis已经改名为Mybatis了,更新比较快,一个比较好的数据持久层框架。
9 楼 glamey 2011-02-18  
没必要加入那么多jar包的。
8 楼 白糖_ 2011-02-18  
求源码,学习编码经验
7 楼 tdttyl.cwm 2011-02-18  
wxq594808632 写道
lz是神马浏览器?看起来好高端..

很显然 Chrome
6 楼 yanleihebei 2011-02-18  
ibatis怎么没用到啊。。我没用过它,就看见一个配置文件
5 楼 weilingfeng98 2011-02-18  
都是火星人呀
4 楼 wxq594808632 2011-02-18  
lz是神马浏览器?看起来好高端..
3 楼 jayqean 2011-02-18  
好久没搞J2EE,都快忘了.
2 楼 k_scott 2011-02-18  
这么点就完了
1 楼 sarin 2011-02-18  
使用Maven可以解决你最后一个问题。

相关推荐

    struts2+spring+ibatis+mysql

    "Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...

    struts2+spring+Ibatis框架包

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    struts2+spring3+ibatis项目整合案例

    Struts2、Spring3和iBATIS是Java Web开发中常用的三大框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何...

    spring+struts2+ibatis整合的jar包

    在Java Web开发中,Spring、Struts2和iBatis是三个非常重要的框架,它们各自在不同的层面上提供了强大的功能。Spring是一个全面的后端应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能;Struts...

    struts2+spring+ibatis整合项目实例

    Struts2、Spring和iBatis是Java Web开发中常用的三个开源框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。这个整合项目实例旨在展示如何将这三个框架集成到一起,以实现更强大的功能。 1....

    Spring+Struts+ibatis讲解

    在Spring+Struts+ibatis这种经典的Java Web开发框架组合中,主要涉及到三层架构:表现层(Action)、业务逻辑层(Service)和数据访问层(DAO)。这些组件协同工作,实现了应用程序的功能。以下是对各部分的详细解释...

    struts+spring+ibatis做的一个增删改查例子

    Struts、Spring 和 iBATIS 是Java开发领域中三大经典的开源框架,它们组合起来可以构建出高效、可维护的企业级Web应用。这个例子是利用这三个框架实现了一个基础的增删改查(CRUD)功能,涵盖了数据库操作、业务逻辑...

    struts+spring+ibatis的Demo

    通过研究这个Demo,开发者可以学习到如何在实际项目中运用Struts 2进行控制器层的设计,利用Spring进行服务层和持久层的管理,以及如何通过iBatis进行数据库操作。这有助于提高Java Web开发的效率和代码质量。

    struts2+spring+ibatis项目实例

    总的来说,"struts2+spring+ibatis"项目实例展示了如何利用这三大框架来构建一个完整的Web应用程序。通过Struts2处理请求,Spring进行依赖管理和事务控制,以及iBatis处理数据库操作,我们可以构建出高效、模块化且...

    Struts+Spring+Ibatis示例

    Struts、Spring 和 iBatis 是 Java Web 开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且易于维护的系统架构。这个"Struts+Spring+Ibatis示例"提供了一个基础的整合应用,帮助开发者理解这三者如何...

    struts+spring+ibatis框架

    Struts、Spring和iBatis是Java开发中常用的三大开源框架,它们各自负责应用程序的不同层面,共同构建了一个灵活且强大的企业级应用开发解决方案。这里,我们深入探讨这三个框架以及它们如何协同工作。 **Struts框架...

    spring+struts+ibatis

    标题中的"spring+struts+ibatis"是指一种经典的Java Web开发架构,也被称为SSM框架。这个架构结合了Spring框架、Struts2框架和iBatis(现在称为MyBatis)来构建高效且可维护的Web应用。下面将详细阐述这三个框架以及...

    struts2+spring+ibatis增删查改翻页代码示例

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架组合,它们协同工作能够构建出高效、灵活的企业级应用程序。在这个“struts2+spring+ibatis增删查改翻页代码示例”中,我们将深入探讨这三个框架如何协同实现...

    Struts2+spring+ibatis三大框架整合实例

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...

    struts2+spring+ibatis的小demo

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的企业级应用程序。在这个“struts2+spring+ibatis”的小demo中,我们将深入探讨这三个框架的核心功能以及它们如何协同...

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    Struts2、Spring、iBatis以及Oracle是Java Web开发中的四大核心组件,它们共同构建了一个强大且灵活的后端架构。在这个实例中,我们将会深入探讨这些技术如何协同工作,实现分页搜索功能和上传附件操作。 1. **...

    spring+ibatis+struts2+dwr反转

    这个项目"spring+ibatis+struts2+dwr反转"整合了四个关键的Java Web开发组件,它们分别是Spring、iBatis、Struts2和Direct Web Remoting (DWR)。下面将详细介绍这些技术及其在项目中的作用。 1. **Spring框架**:...

    Struts+Spring+Ibatis整合框架搭建配置文档

    Struts、Spring与Ibatis(现称MyBatis)作为三个功能互补的Java框架,它们的联合使用能够显著提升Web应用程序的性能与稳定性。本文将详细阐述如何搭建并配置Struts+Spring+Ibatis整合框架,旨在为开发者提供一个清晰...

    struts+spring+ibatis框架集成.pdf

    1. 创建Web项目,并将所有必要的框架库(包括Struts2、Spring、iBatis、JSON插件、数据库驱动和DBCP等)添加到项目的类路径。 2. 配置web.xml,设置Struts2、Spring和iBatis的初始化参数,如Filter配置、Spring的...

Global site tag (gtag.js) - Google Analytics