Учебники

Struts 2 & Spring Integration

Spring — это популярный веб-фреймворк, обеспечивающий простую интеграцию с множеством общих веб-задач Итак, вопрос в том, зачем нам Spring, когда у нас есть Struts2? Что ж, Spring — это больше, чем MVC-фреймворк — он предлагает множество других полезностей, которые недоступны в Struts.

Например: внедрение зависимости, которое может быть полезно для любой платформы. В этой главе мы рассмотрим простой пример, чтобы увидеть, как интегрировать Spring и Struts2 вместе.

Прежде всего, вам нужно добавить следующие файлы в путь сборки проекта из установки Spring. Вы можете скачать и установить последнюю версию Spring Framework по адресу https://www.springsource.org/download

  • org.springframework.asm-xyzM (а) .jar
  • org.springframework.beans-xyzM (а) .jar
  • org.springframework.context-xyzM (а) .jar
  • org.springframework.core-xyzM (а) .jar
  • org.springframework.expression-xyzM (а) .jar
  • org.springframework.web-xyzM (а) .jar
  • org.springframework.web.servlet-xyzM (а) .jar

Наконец, добавьте struts2-spring-plugin-xyzjar в ваш WEB-INF / lib из вашего каталога Struts lib. Если вы используете Eclipse, то вы можете столкнуться с исключением java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener .

Чтобы решить эту проблему, вам нужно перейти на вкладку « Маркер » и щелкнуть правой кнопкой мыши по зависимостям классов по очереди и выполнить быстрое исправление, чтобы опубликовать / экспортировать все зависимости. Наконец, убедитесь, что на вкладке маркера нет конфликта зависимостей.

Интеграция Struts и Sprint

Теперь давайте настроим 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 называется applicationContext.xml, и его нужно размещать на том же уровне, что и файл web.xml.

Давайте создадим простой класс действий с именем User.java с двумя свойствами — firstName и lastName.

package com.tutorialspoint.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 и создадим экземпляр класса 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.tutorialspoint.struts2.User">
      <property name = "firstName" value = "Michael" />
      <property name = "lastName" value = "Jackson" />
   </bean>
</beans>

Как видно выше, мы настроили пользовательский компонент и ввели значения Майкла и Джексона в компонент. Мы также дали этому бину имя «userClass», чтобы мы могли использовать его в другом месте. Теперь давайте создадим User.jsp в папке WebContent —

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

Важно отметить, что мы используем идентификатор userClass для ссылки на класс. Это означает, что мы используем spring для внедрения зависимости для класса User.

Теперь щелкните правой кнопкой мыши на имени проекта и выберите « Экспорт»> «Файл WAR», чтобы создать файл «War». Затем разверните эту WAR в каталоге веб-приложений Tomcat. Наконец, запустите сервер Tomcat и попробуйте получить доступ к URL-адресу http: // localhost: 8080 / HelloWorldStruts2 / User.jsp . Это создаст следующий экран —

Struts и Spring Integration

Теперь мы увидели, как объединить две отличные основы. На этом мы завершаем главу интеграции Struts — Spring.