struts2的好处,web层的显示,同时Action类相当于MVC模式的C。整合进来的话,是通过与Spring整合,减少重复代码,利用IoC和AOP。

1、struts-2.5.2.jar

以上是struts-2.5.2基本的包 ,另外着色的两个之前有加入了,不再加入。

2、整合包

struts2-spring-plugin-2.5.2(struts2有提供)

3、Action要用注解的话

加入struts2-convention-plugin-2.5.2

在Action上加上注解时

有NoClassDefFoundError: org/objectweb/asm/ClassVisitor报错

加入asm-xxx.jar

有NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor包

加入asm-commons-xxx.jar

加入这两个包就没有报错了。不过还有一个asm-tree-xxx.jar同样是字节码的处理jar。先将它加入吧。

4、初步了解struts2

参考 struts2入门程序

5、将Action托管给Spring

需要在struts.xml中加上常量。

<constant name="struts.objectFactory" value="spring"></constant>

加上这个常量,且有一个包的struts配置文件如下。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd"> <struts>
<!-- 开发模式(修改struts.xml不用重启服务器) -->
<constant name="struts.devMode" value="true" /> <!-- 将action托管给spring -->
<constant name="struts.objectFactory" value="spring"></constant> <!-- 动态action 2.5-->
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="myPackage" namespace="/user" extends="struts-default" >
<!-- 动态action 2.5-->
<global-allowed-methods>regex:.*</global-allowed-methods> <action name="userAction" class="com.xzw.ssh.action.UserAction">
<result name="success">/index.jsp</result>
</action>
</package> </struts>

struts.xml

6、整合成功。

可以尝试一下在Action中的注入一个属性,然后访问这个Action,看下有没有成功注入。

至此,三大框架Struts-2.5.2、Spring-3.2.0和Hibernate-4.2.21基本整合成功。目前导入了以下包。

SSH整合 第五篇 struts2的到来的更多相关文章

  1. SSH整合 第四篇 Spring的IoC和AOP

    这篇主要是在整合Hibernate后,测试IoC和AOP的应用. 1.工程目录(SRC) 2.IoC 1).一个Service测试类 /* * 加入spring容器 */ private Applic ...

  2. SSH整合 第三篇 Spring的加入

    1.思路和想法. 目前理解到的,觉得是的,可能的,应该这样的……………… Spring的两大核心是IoC和AOP Ioc:帮助实例化对象,加载到容器中,在注入到需要用到的地方.这样就可以减少在不同的方 ...

  3. ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册

    在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...

  4. 第五篇——Struts2的默认Action

    默认Action 1.当访问action不存在时,可以通过制定默认action的方式避免出现错误代码页面: 2.使用default-action-ref 指定默认 action. 项目实例 1.项目结 ...

  5. SSH整合 第二篇 工程初建

    SSH整合,第二篇. 创建工程 这里只是测试和理解hibernate.建立Java工程就好了. 1.hibernate-4.2.21.jar hibernate包下的required,即\hibern ...

  6. SSH整合开发时Scope为默认时现象与原理

    1.前提知识 1)scope默认值 进行SSH整合开发时,Struts2的action须要用spring容器进行管理,仅仅要涉及到类以bean的形式入到spring容器中.无论是xml配置还是使用注解 ...

  7. Java - 框架之 SSH 整合

                        代码获取 十四. ssh 整合1 - 包 1. Struts jar 包    - Struts-2.xx\apps\stutrs2-blank\WEB-INF ...

  8. Spring(八)SSH整合简述

    一.Spring与Struts2的整合 1.1.整合步骤 1.2.配置web.xml 1.3.配置spring配置文件applicationContext.xml 1.4.配置struts配置文件 1 ...

  9. SSH整合(struts2.3.24+hibernate3.6.10+spring4.3.2+mysql5.5+myeclipse8.5+tomcat6+jdk1.6)

    终于开始了ssh的整合,虽然现在比较推崇的是,ssm(springmvc+spring+mybatis)这种框架搭配确实比ssh有吸引力,因为一方面springmvc本身就是遵循spring标准,所以 ...

随机推荐

  1. MySQL Installation of system tables failed!

    刚开始学习Linux,就遇到了问题. 当在RedHat下安装MySQL时提示如下错误,请高手给点指点,谢谢: rpm -vih  MySQL-server-community-5.0.96-1.rhe ...

  2. c#栈的习题2

    —.单项选择题1.栈和队列具有相同的(    ). A.抽象数据类型     B.逻辑结构     C.存储结构     D.运算2.栈是(). A.顺序存储的线性结构     B.链式存储的非线性结 ...

  3. 吴裕雄 实战python编程(1)

    import sqlite3 conn = sqlite3.connect('E:\\test.sqlite') # 建立数据库联接cursor = conn.cursor() # 建立 cursor ...

  4. Containerpilot 配置文件 之 consul

    Consul ContainerPilot使用Hashicorp的consul在作为服务的容器中注册工作. Watches查询consul找出其他服务的状态. Client configuration ...

  5. Hive—学习笔记(一)

    主要内容: 1.Hive的基本工能机制和概念 2.hive的安装和基本使用 3.HQL 4.hive的脚本化运行使用方式 5.hive的基本语法--建表语法 6.hive的基本语法--内部表和外部表. ...

  6. 【校招面试 之 C/C++】第16题 C++ new和delete的实现原理

    1.new new操作针对数据类型的处理,分为两种情况: (1)简单数据类型(包括基本数据类型和不需要构造函数的类型) 代码实例: int* p = new int; 汇编码如下: int* p = ...

  7. linux文件管理2

    1.显示文件内容 cat : 显示文件内容 tac : 倒序显示内容 2.更改文件权限 chmod :更改文件权限 -R 递归改变 chown :更改文件拥有者 -R 递归改变 chgrp :更改文件 ...

  8. JTSL/EL Expression学习

    最早的一个学习笔记,时间过去了久了,供java web初学者参考. JTSL/EL Expression学习安排 学习目标:掌握几个常见标签的使用,通晓工作原理,详细到代码层面,遇到问题时能查得出异常 ...

  9. servlet 中 service ,doGet , doPost 关系

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  10. window.name跨域实现

    参考:window.name实现的跨域数据传输 有三个页面: a.com/app.html:应用页面. a.com/proxy.html:代理文件,一般是一个没有任何内容的html文件,需要和应用页面 ...