使用Maven配置Struts2 集成Spring
来源:互联网 发布:java自动化测试 编辑:程序博客网 时间:2024/06/07 16:54
使用Maven配置Struts2 集成Spring
上篇文章介绍了如何配置Struts2,但是Struts和Spring是怎么集成的呢,他们关联的配置是什么,带着这些疑问,我又开始找各种资料。开此文以记录。集成Spring需要在Web.xml中配置Spring的监听类和Spring bean文件,在Struts.xml文件中配置使用Spring实例化类;添加Struts和Spring关联Jar包struts2-spring-plugin.jar。估计是有些版本的struts2-spring-plugin.jar包中的struts-plugin.xml已经默认配置使用Spring,所以Struts.xml就不需要另外配置使用Spring,我配到的版本就是这样的。大概的思路用Spring自动初始化一个Person对象,并返回值到页面中。Person对象为Action类的一个属性。
添加struts-spring关联jar包
在pom.xml添加下面配置:
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.5-BETA1</version> </dependency>
保存后就发现,Maven已经自动下载了jar文件,如下图:
看到struts-plugin.xml了吗,里面就有struts使用spring注入的配置:
constant name=”struts.objectFactory” value=”spring” />
所以不需要在struts.xml做另外的配置。
添加Spring Jar 包
在pom.xml中添加下面配置:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.0.RELEASE</version> </dependency>
也许有人问怎么知道引用那么几个jar包,其实我刚开始配置的也只是配置了个spring-context节点。但是跑起来提示ClassNotFound,NoClassDefine等等,针对错误添加相应的jar即可。
配置web.xml
<web-app> <display-name>Archetype Created Web Application</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/application.xml</param-value> </context-param></web-app>
刚开始没添加spring-web.jar包时,这个ContextLoaderListener也是提示NotFound。
添加Person类
package com.hurricane.entity;public class Person { public int Age; public String Name;public int getAge() { return Age;}public void setAge(int age) { Age = age;}public String getName() { return Name;}public void setName(String name) { Name = name;}}
修改LoginAction类
我需要在这个类中添加一个Person类的变量,变量值属性值初始化在Spring的配置文件中。
package com.hurricane.action;import java.io.IOException;import com.hurricane.entity.Person;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport { public String Name; public int Age; public Person PersonShana; public String getResult() { return Result; } public Person getPersonShana() { return PersonShana; } public void setPersonShana(Person personShana) { PersonShana = personShana; } public void setResult(String result) { Result = result; } public String Result; public String getName() { return Name; } public void setName(String name) { Name = name; } public int getAge() { return Age; } public void setAge(int age) { Age = age; } @Override public String execute() throws Exception { return "success"; }}
修改Index.jsp
修改index.jsp直接把PersonShana这个对象打印出来,这个对象是由spring初始化的。
<%@ taglib uri="/struts-tags" prefix="s"%><%@ page contentType="text/html; charset=UTF-8"%><%@ page pageEncoding="UTF-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body> <h2>Hello World!</h2> <form action="login"> 姓名<s:property value="PersonShana.Name" /> 年龄<s:property value="PersonShana.Age" /> </form></body></html>
配置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.devMode" value="true"></constant> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <constant name="struts.locale" value="zh_CN"></constant> <package name="hurricane" extends="struts-default"> <action name="login" class="login"> <result> index.jsp </result> </action> </package></struts>
配置application.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.xsd"> <bean id="person" name="person" class="com.hurricane.entity.Person"> <property name="name" value="shana"></property> <property name="age" value="29"></property> </bean> <bean id="login" name="loginaction" class="com.hurricane.action.LoginAction"> <property name="personShana" ref="person"></property> </bean></beans>
运行index.jsp
下载demo
0 0
- 使用Maven配置Struts2 集成Spring
- IDEA下使用maven集成Struts2和Spring
- Struts2 + Spring 2 集成配置
- Struts2 + Spring 2 集成配置
- xfire 集成 spring maven配置
- 使用Maven配置Struts2
- Spring与Struts2零配置集成
- 使用Maven配置spring
- 使用maven配置spring
- 使用Maven配置spring
- 使用Maven配置spring
- 集成struts2 spring hibernate,使用注解
- 集成Struts2 spring hibernate使用注解
- 集成struts2 spring hibernate中使用注解
- maven+Spring+Struts2+Hibernate 整合 xml配置
- eclipse 使用maven 集成spring+springMVC+mybatis
- 使用maven创建Struts2+Spring工程
- 使用maven创建Struts2+Spring工程
- JQuery读取本地Json文件
- FilenameFilter文件名过滤器使用实例
- 博客园博问闪存首页新随笔联系管理订阅 2011/6/2Java笔记之对象池1(commons-pool)
- java获取当前路径的几种方法
- hibernate里createSQLQuery
- 使用Maven配置Struts2 集成Spring
- ShadowGun 的学习笔记 - GodRays
- c# 序列化和反序列化
- zabbix+flume+hadoop安装及其监控
- ubuntu10.04用一段时间后无法更新
- 关于.getClass()和.class的区别
- handler
- 将pdf转换成word格式的转换方法
- [DIV/CSS] CSS-清除浮动