把系統從Struts2 遷移到 Spring MVC六大步總結
Step 1: 替換基本的框架庫。
Firstly while migrating from struts to spring we have to replace our struts related libraries with spring libraries in lib folder.I have mentioned basic libraries of both struts and spring for your clarification.
Struts basic libraries :
- struts.jar
- struts-legacy.jar
- etc..
Spring basic libraries :
- standard.jar
- org.springframework.asm-4.0.1.RELEASE-A.jar
- org.springframework.beans-4.0.1.RELEASE-A.jar
- org.springframework.context-4.0.1.RELEASE-A.jar
- org.springframework.core-4.0.1.RELEASE-A.jar
- org.springframework.expression-4.0.1.RELEASE-A.jar
- org.springframework.web.servlet-4.0.1.RELEASE-A.jar
- org.springframework.web-4.0.1.RELEASE-A.jar
- etc..
Step 2: 修改web.xml配置檔案
In this step we have to remove Action filter dispatcher for the web.xml and add Spring dipatcher servlet as Front controllerWork on new technology :
In Strut application web.xml look like as follows
<?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>Struts2MyFirstApp</display-name> <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> <welcome-file-list> <welcome-file>Login.jsp</welcome-file> </welcome-file-list> </web-app>
In Spring application web.xml look like as follows
<?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" 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>springApp</display-name> <servlet> <servlet-name>springApp</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springApp</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
Step 3: 替換Struts本身的配置檔案
Now replace all struts configuration files to spring configuration file as followsIn Struts applivation struts configuration file-
<?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.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <constant name="struts.custom.i18n.resources" value="myapp" /> <package name="default" extends="struts-default" namespace="/"> <action name="login" class="com.geekonjavaonjava.struts2.login.LoginAction"> <result name="success">Welcome.jsp</result> <result name="error">Login.jsp</result> </action> </package> </struts>
In Spring application spring configuration file as follows
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" 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-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:component-scan base-package="com.geekonjavaonjava.spring.login.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/views/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> <span style="font-family: Times New Roman;"><span style="white-space: normal;"> </span></span>Here, <context:component-scan> tag is used, so that spring will load all the components from given package i.e. "com.geekonjavaonjava.spring.login.controller".
Use this in Struts2 :
We can use different view resolver, here I have used InternalResourceViewResolver. In which prefix and suffix are used to resolve the view by prefixing and suffixing values to the object returned by ModelAndView in action class.
Step 4: 修改JSP檔案
While migration an application from struts to spring we need to change in jsp file as followingFirstly replace all tlds-
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
Replace these with following spring taglib's :
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
In Struts :
<html:form action="/addLogin" method="post">
In Spring :
<form:form method="POST" commandName="loginForm" name="loginForm" action="login.do">Here commandName is going to map with corresponding formbean for that jsp. Next we will see, how action is getting called with spring 4 annotations.
Step 5: 修改Action 類檔案
Now following changes need to be done in action classes for struts to spring migration using annotations-Struts Action:
package com.geekonjavaonjava.struts2.login; import com.opensymphony.xwork2.ActionSupport; /** * @author geekonjava * */ @SuppressWarnings("serial") public class LoginAction extends ActionSupport{ private String username; private String password; public String execute() { if (this.username.equals("geekonjava") && this.password.equals("sweety")) { return "success"; } else { addActionError(getText("error.login")); return "error"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
Spring action
package com.geekonjavaonjava.spring.login.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * @author GeekOnJava * */ @Controller public class LoginController { @RequestMapping(value="/login.do", method = RequestMethod.GET) public String doLogin(ModelMap model, LoginForm loginForn) { if (this.username.equals("geekonjava") && this.password.equals("sweety")) { model.addAttribute("message", "Login Success"); } else { model.addAttribute("message", "Login Failure"); } return "home"; } }
Step 6: 修改前端驗證機制
In struts JSP file validation changes as follows
<% ActionErrors actionErrors = (ActionErrors)request.getAttribute("org.apache.struts.action.ERROR"); %>
In Spring JSP file as follows-
<form:errors path="*" cssClass="error" />
相關推薦
把系統從Struts2 遷移到 Spring MVC六大步總結
Step 1: 替換基本的框架庫。Firstly while migrating from struts to spring we have to replace our struts related libraries with spring libraries in lib folder.I have m
Struts2和Spring MVC 區別 今天面試被問到了
上下 知識庫 quest 程序 body del esp 創建 let 雖然說沒有系統的學習過Spring MVC框架, 但是工作這麽長時間, 基本上在WEB層使用的都是Spring MVC, 自己覺得Struts2也是一個不錯的WEB層框架, 這兩種框架至今自己還未有比較
淺談struts2和spring MVC的區別
一、框架機制 1. spring MVC是通過servlet的方式進行攔截,在第一次請求傳送時初始化,並隨著容器關閉而銷燬。 2. struts2是通過filter(攔截器)的方式進行攔截,在容器初始化時載入。晚於servlet銷燬。 二、攔截機制
Struts2、Spring MVC及 Spring優缺點整理
Struts2的優點 Struts2 是一個相當強大的Java Web開源框架,是一個基於POJO的Action的MVC Web框架。它基於當年的Webwork和XWork框架,繼承其優點,同時做了相當的改進。Struts2現在在Java Web開發界的地位可以說是大紅
我將系統從Windows遷移至Linux下的點點滴滴
一、寫在最前 由於本人的技術水平有限,難免會出現錯誤。本文對任何一個人有幫助都是我莫大的榮幸,任何一個大神對我的點撥,我都會感激不盡。 二、技術選型 在2013年8月低的時候,公司中了XXX市場監督局肉品配送車輛監控的專案。整個系統軟體部分需要實現的功能不難,最大的難點就是伺服器的系統要求是Li
日誌系統從windows遷移到linux伺服器
使用yum install java yum install jdk 安裝了java環境。 用文字編輯器寫一個java程式來驗證,儲存在/search/bin目錄,檔名:HelloWorld.java,輸入如下內容: public class HelloWor
多專案集中許可權管理系統 採用cas +shiro+spring mvc+mbatis+bootstrap單點登入
流程架構圖: 這裡許可權系統也可以理解為cas client專案 系統效果圖: 業務場景:多專案統一認證登入,許可權統一管理,許可權系統管理使用者資料,其他業務系統只維護業務資料,使用者資料一律來自許可權系統 該功能目前經過半個多月的努力 在巨大壓力下終於完成了! 目前國內
struts1、struts2、spring mvc的action和HttpServlet、filter是否單例
struts1 package com.struts1.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; impo
43、如何把系統不停機遷移到分庫分表的?
1、面試題 現在有一個未分庫分表的系統,未來要分庫分表,如何設計才可以讓系統從未分庫分表動態切換到分庫分表上? 2、面試官心裡分析 你看看,你現在已經明白為啥要分庫分表了,你也知道常用的分庫分表中介軟體了,你也設計好你們如何分庫分表的方案了(水平拆分、垂直拆分、分表),那問題來了,你接下
把資料庫從MYSQL遷移到POSTGRESQL
終於決定把資料庫從MYSQL轉到postgresql了。如何遷移是個問題。手工遷移太麻煩。終於從POSTGRESQL的網站上找到了一個小的遷移工具名字叫mysql2pgsql.perl,這是一個perl編寫的小程式。用法是先把MYSQL裡的資料DUMP下來儲存為mysql.s
Spring,Spring MVC,MyBatis,Hibernate總結
將之前學習的框架知識進行了UML圖總結,若有錯誤或不當之處,勞煩朋友們指正,會及時作出修改和補充; [toc] Spring Spring MVC MyBatis,Hibernate
Spring MVC常見bug總結----持續更新中
一、 Spring MVC的配置檔案Springmvc-servlet.xml報錯,在新增 <context:component-scan base-package="controller" /> 來指定控制器所在的包時,視窗顯示紅叉,報錯內容為: Mu
Spring MVC入門知識總結
not 實現 前端控制器 步驟 將在 tlv 進入 檢查 shm 2.1、Spring Web MVC是什麽 Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責
[讀後感]spring Mvc 教程框架實例以及系統演示下載
溝通 odi size ffi com xml文件 點贊 事務 共享 [讀後感]spring Mvc 教程框架實例以及系統演示下載太陽火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商業用途-保持一致”創作公用協議轉載請
spring mvc從@ResponseBody取到json發現中文亂碼
tab reat builder attr cover proc first hresult acc 問題背景:如題。 問題定位:代碼跟蹤,從源頭入手,一步一步跟進,直到設置中文編碼的地方。 問題代碼: /** * 獲取單個測試樁接口內容
java電子商務系統源碼 Spring MVC+mybatis+spring boot+spring security
電子商務平臺 word 解決方案 功能 截圖 mybatis 互聯 包括 數據監控 鴻鵠雲商大型企業分布式互聯網電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分布式、微服務、雲架構電子商
Spring MVC筆記(六) springMVC標簽
etc auth del trie spring utils tla print try 記錄下SPRINGMVC常用的標簽,直接代碼,不解釋: package com.bwy.springmvc.tag.textbox; /** * @author Administ
Spring MVC 從 Controller向頁面傳值的方式
用戶 () 傳參數 control let att model enter 設定 Spring MVC 從 Controller向頁面傳值的方式 在實際開發中,Controller取得數據(可以在Controller中處理,當然也可以來源於業務邏輯層),傳給頁面,常用的方
基於Vue+Spring MVC+MyBatis+Shiro+Dubbo開發的分布式後臺管理系統
java dubbo shiro vue 分布式 最近項目中使用了shiro做權限管理,在開發過程中也踩了一些坑,於是便有了開發個應用鞏固一下所學知識的想法,正好在開發的過程裏學習一下Vue開發。技術棧方面,現在前後端分離大行其道,於是也采用了前後端分離的模式,前端基於Vue+Elemen
Struts2如何實現MVC,與Spring MVC有什麽不同?
lte result map span 處理 view app pin resolve Struts2采用filter充當前端控制器處理請求,filter會根據Struts.xml的配置,將請求分發給不同的業務控制器Action,再由Action處理具體的業務邏輯。A