Spring,负责对象对象创建

Struts, 用Action处理请求

Spring与Struts框架整合,

关键点:让struts框架action对象的创建,交给spring完成!

步骤:

1)引入struts .jar相关文件

a、引入struts .jar相关文件

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

freemarker-2.3.19.jar

javassist-3.11.0.GA.jar

ognl-3.0.5.jar

struts2-core-2.3.4.1.jar

xwork-core-2.3.4.1.jar

b、spring-core  相关jar文件

commons-logging-1.1.3.jar

spring-beans-3.2.5.RELEASE.jar

spring-context-3.2.5.RELEASE.jar

spring-core-3.2.5.RELEASE.jar

spring-expression-3.2.5.RELEASE.jar

c、spring-web 支持jar包

spring-web-3.2.5.RELEASE.jar                   【Spring源码】

struts2-spring-plugin-2.3.4.1.jar      【Struts源码】

2)配置:

struts.xml                   【struts路径与action映射配置】

/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

/index.jsp

bean.xml               【spring ioc容器配置】

a . bean-dao.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

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.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd">

b、bean-service.xml 同上,将对象加入IOC容器

c、bean-action.xml

web.xml

【核心过滤器: 引入struts功能】

【初始化spring的ioc容器】

具体配置可 以查看源码的api

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

contextConfigLocation

WEB-INF/classes/bean-*.xml

org.springframework.web.context.ContextLoaderListener

3)、代码

项目截图

userDao

package com.gqx.dao;

public class UserDao {

public void save() {

System.out.println("DB:保存用户");

}

}

userService

public class UserService {

//IOC容器注入

private UserDao userDao;

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

public void save() {

userDao.save();

}

}

userAction

public class UserAction extends ActionSupport {

// springIOC容器注入

private UserService userService;

public void setUserService(UserService userService) {

this.userService = userService;

}

public String execute() {

userService.save();

return SUCCESS;

}

}

4)、访问http://localhost:8080/struts-spring/user

就可以看到控制台如下的信息

Bug

按照

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 错误解决方案

种错误意思很明确:找不到“ org.springframework.web.context.ContextLoaderListener”这个类,ContextLoaderListener这个类是在spring-web.jar包下,我仔细检查了项目jar环境,发现该jar包确实存在,而且也能找到编译后的ContextLoaderListener.class文件。

在网上找到的回答解决了问题,如下

如果你是maven项目,tomcat在发布项目的时候没有同时发布maven依赖所添加的jar包,

你需要设置一下eclipse:

项目 —> 属性 -> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK

把对应的Maven依赖包也发布到tomcat,调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了。

网上有去查了一下原因,如下:

Java虚拟机是根据Java ClassLoader(类加载器)决定如何加载Class。

系统默认提供了3个ClassLoader

Root ClassLoader,ClassPath Loader,Ext ClassLoader

我们也可以编写自己的ClassLoader,去加载特定环境下的Jar文件。

能不能加载Jar,加载哪里的Jar,是由ClassLoader决定的。

问题可能是 导入的仅仅是jar包的引用,需要特殊的指定(类似快捷方式)

如果是通过正常的WEB-INF/lib下引入jar包,会正常的显示,默认会buildPath,

如果是通过项目->属性->java Build Path->Add library->user Library....这种方式导入包,会出现上面那种错误,需要按上面的方法去解决!

java struct 简单案列_spring与struts简单整合案例相关推荐

  1. java 新建 api 案列_Java利用webservice创建接口案例源码

    环境要求: JDK1.7,并配置Java的环境变量 BaseDao  接口: /** * 要使得成为一个可供访问的接口,必须添加:@WebService * */ @WebService public ...

  2. Java Web应用案列:蒙西购物1

    Java Web应用案列:蒙西购物 功能需求 1.只有注册用户成功登录之后才可查看商品类别,查看商品,选购商品,生成订单.查看订单. 2.只有管理员才有权限进行购物网后台管理(用户管理+类别管理+商品 ...

  3. 闭包的作用和简单案列

    闭包的作用和简单案例 闭包的定义:闭包就是能够读取其他函数内部变量的函数: 简单的理解为:一个作用域可以访问其他函数内部的局部变量: 常见的方式:一个函数内创建另外一个函数,通过另外一个函数访问这个函 ...

  4. 卷积神经网络概述以及简单案列

    感谢阅读 CNN概述 卷积层 卷积计算 Padding stride PyTorch 卷积层 API 池化层 经典案列图像分类 CIFAR10 数据集 模型构建 模型训练 预测 CNN概述 卷积神经网 ...

  5. [Java基础]反射案列

    pro.properties文件(该文件与ReflectTest01同处在同一个文件夹): className = domain.Person methodName = eat 代码如下: packa ...

  6. python爬虫无敌简单案列之堆糖网的图片爬取

    导入模块: import requests import urllib.parse from urllib.request import urlretrieve 输入需要搜索的内容: num = 1 ...

  7. 计算机辅助设计案列,计算机辅助设计与制造实验案例..docx

    PAGE PAGE \* MERGEFORMAT 1 计算机辅助设计与制造 上机实验 学 生: 朱路 学 号: 课程教师: 朱才朝 专业班级: 机自10班 机械工程学院 二O一四年十月 实践目的 熟悉 ...

  8. html中放大镜案列,Canvas实现放大镜效果完整案例分析(附代码)

    本文主要记录 canvas 在图像.文字处理.离屏技术和放大镜特效的实现过程中使用到的api.先看下效果吧: 一张模糊的图片: 鼠标点击任意位置,产生放大效果: 哇塞~ 一个帅哥,哈哈哈哈~ 1.放大 ...

  9. ACL——【知识详解+案列+(RACL+VACL+PACL)】详解

    目录 一.ACL(知识讲解+简单案列应用): (1)知识详解: (2)简单案列应用: (3)调整ACL 策略(实现ACL策略穿插) (4)以字符串命名的ACL的编写与调用(常用): (5)ACL方向: ...

最新文章

  1. IC基础知识(4)电源管理简介:稳压器IC
  2. java 正则表达式 替换字符串img标签的路径_python面试题汇总第06期-正则表达式(内附7题及答案)...
  3. Shell(6)——if语句
  4. html小球跳跃技术原理,HTML5在文本上跳跃的小球
  5. html文件怎么保存链接,如何使用beautifulsoup将链接的html保存在文件中,并对html文件中的所有链接执行相同的操作...
  6. Java写js的Ajax代码_用JS写的一个Ajax库(实例代码)
  7. LinuxShell笔记3 条件控制和流程控制
  8. WDS部署服务所用的PXE引导文件
  9. 图论(一)—— 基本概念
  10. 程序如何在两个gpu卡上并行运行_【他山之石】如何支撑上亿类别的人脸训练?显存均衡的模型并行(PyTorch实现)...
  11. repo/git提交代码
  12. 水利工程中计算机软件用到什么,水利工程设计中计算机技术的应用论文
  13. linux下find搜索jpg格式图片,Linux文件查找命令-find
  14. MFC 控件被图片覆盖
  15. 《头文字D》热门同人插画欣赏
  16. 用mysql设计一个KTV点歌系统_KTV点歌系统(JAVA+MYSQL)
  17. 如何防止网站静态文件被挂马
  18. 报错 jinja2.exceptions.TemplateSyntaxError: Unexpected end of template. Jinja was looking for the foll
  19. java公众号上传素材及发送图文消息实现
  20. 高科技供应链管理方案:帮助招采经理实现投资回报率最大化

热门文章

  1. 95-10-040-启动-限额管理
  2. 【ES】ES 如何在一个机器上同时模拟多个node
  3. mac下intellij idea 永久破解
  4. 05-IntelliJ IDEA清空项目缓存
  5. shell 编程-Expect
  6. java将字符串转小写转大写字母_输入一个字符串,将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字...
  7. 中的图片文字识别_文字识别 图片转文字【小程序】
  8. springboot使用JdbcTemplate完成对数据库的增删改查
  9. VCL组件之公用对话框组件
  10. 使用C#打造通用的数据库连接类