Www.helper3.com
热门关键字: php net javascript java
Struts2基础 专题
专题目录
您的位置:java > Struts2基础专题 > Struts2和Spring集成
Struts2和Spring集成
作者:--    发布时间:2019-11-20 10:13:48

spring是一个流行的web框架,它提供易于集成与很多常见的网络任务。所以,问题是,为什么我们需要spring,当我们有struts2?spring是超过一个mvc框架 - 它提供了许多其它好用的东西,这是不是在struts。例如:依赖注入可以是有用的任何框架。在本章中,我们将通过一个简单的例子来看看如何集成spring和struts2一起。

首先,需要添加下列文件到项目的构建路径从spring安装。您可以下载并安装最新版本的spring框架从 http://www.springsource.org/download

  • org.springframework.asm-x.y.z.m(a).jar

  • org.springframework.beans-x.y.z.m(a).jar

  • org.springframework.context-x.y.z.m(a).jar

  • org.springframework.core-x.y.z.m(a).jar

  • org.springframework.expression-x.y.z.m(a).jar

  • org.springframework.web-x.y.z.m(a).jar

  • org.springframework.web.servlet-x.y.z.m(a).jar

最后加入struts2-spring-plugin-x.y.z.jar在web-inf/lib从struts的lib目录。如果使用的是eclipse,那么可能会面临一个异常的java.lang.classnotfoundexception异常:org.springframework.web.context.contextloaderlistener。为了解决这个问题,应该在一类依赖的标记标签右上点击快速修复发布/导出所有的依赖关系。最后,确保不存在依赖冲突标记“选项卡下。

struts and sprint integration

现在让我们来设置web.xml中的struts-spring集成如下:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemalocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="webapp_id" version="3.0">
	
   <display-name>struts 2</display-name>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>

   <listener>
      <listener-class>
         org.springframework.web.context.contextloaderlistener
      </listener-class>
   </listener>

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

这里要注意的最重要的事情是我们已经配置了监听器。 contextloaderlistener的需要加载spring上下文文件。 spring的配置文件名为applicationcontext.xml文件,它必须放置在同一水平web.xml文件

让我们创建一个简单的动作类称为user.java的两个属性 - firstname和lastname。

package com.h3.struts2;

public class user {
   private string firstname;
   private string lastname;

   public string execute()
   {
      return "success";
   }

   public string getfirstname() {
      return firstname;
   }

   public void setfirstname(string firstname) {
      this.firstname = firstname;
   }

   public string getlastname() {
      return lastname;
   }

   public void setlastname(string lastname) {
      this.lastname = lastname;
   }
}

现在,让我们一起创造了applicationcontext.xml spring 配置文件并创建实例user.java类。正如前面提到的,这个文件应该在web-inf文件夹下:

<?xml version="1.0" encoding="utf-8"?>
<!doctype beans public "-//spring//dtd bean//en" 
"http://www.springframework.org/dtd/spring-beans.dtd">
   <beans>
      <bean id="userclass" class="com.h3.struts2.user">
      <property name="firstname" value="michael" />
      <property name="lastname" value="jackson" />
   </bean>
</beans>

正如上面看到的,我们已经配置了用户bean,我们放值michaeljackson到bean。我们也给这个bean名称“userclass”,这样我们就可以重用在其他地方。接下来,让我们在webcontent文件夹中创建由user.jsp:

<%@ page language="java" contenttype="text/html; charset=iso-8859-1"
	pageencoding="iso-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" 
"http://www.w3.org/tr/html4/loose.dtd">

<html>
<head>
<title>hello world</title>
</head>
<body>

   <h1>hello world from struts2 - spring integration</h1>

   <s:form>
      <s:textfield name="firstname" label="first name"/><br/>
      <s:textfield name="lastname" label="last name"/><br/>
   </s:form>
	
</body>
</html>

由user.jsp文件相当直接。它只有一个目的 - 显示的名字和姓氏的用户对象的值。最后,让我们把所有的实体一起使用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" />
   <package name="helloworld" extends="struts-default">
      <action name="user" class="userclass" 
         method="execute">
         <result name="success">/user.jsp</result>
      </action>
   </package>
</struts>

重要的是要注意的是,我们使用id userclass的引用类。这意味着,我们使用的是spring 做的user类的依赖注入。

现在右击项目名称,并单击export > war file创建一个war文件。然后部署这个war在tomcat的webapps目录下。最后,启动tomcat服务器和尝试访问url http://localhost:8080/helloworldstruts2/user.jsp。这会给你以下画面:

struts and spring integration

现在我们已经看到了如何将两个伟大的框架 struts - spring集成。


滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号