精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

實(shí)例說明如何集成Spring和Struts

開發(fā) 后端
使用Spring的ActionSupport和ContextLoaderPlugIn是一種高效簡單集成Struts的方法。本文簡單介紹了Spring和Struts,以及集合的各種利弊,并詳細(xì)介紹了使用使用Spring的ActionSupport和ContextLoaderPlugIn的集成方法。

本文想通過一個(gè)簡單的實(shí)例闡述如何集成Spring和Struts。

1.Struts和Spring

Struts 代表了MVC第二類架構(gòu)的實(shí)現(xiàn),在Struts中最重要的組件是ActionServlet,Action和 ActionForm 子類,ActionServlet 代表controller,他基于配置文件接受請求和 把這些請求轉(zhuǎn)發(fā)到相應(yīng)的ActionForm和Action子類。 ActionForm把用戶輸入的數(shù)據(jù)傳送到Action,Action調(diào)用商務(wù)層組件完成必要的操作,***提交到view。ActionServlet使用一個(gè)配置文件(struts-config.xml)加載Action子類的定義用以接受用戶請求,基于請求URL, controller 找到一個(gè)action定義去接受這個(gè)請求,Struts構(gòu)件處理用戶請求, 檢查配置文件, 完成相應(yīng)的動(dòng)作。

Spring是一種輕量級的容器,它使得使用一個(gè)外部XML配置文件非常容易綁定對象,每個(gè)對象能夠通過列出JavaBean屬性得到一個(gè)依賴 對象的指針,通過綁定XML配置文件使剩下的工作更加簡單。依賴注入(DI)是非常強(qiáng)大的功能,Spring支持可插拔的事務(wù)管理器,提供事物管理方式更 多的選擇. 它集成了持久性的架構(gòu)同時(shí)也提供了一個(gè)統(tǒng)一的exception 分類,Spring也提供面向方面(AOP)編程的簡單機(jī)制。

2.Struts和Spring的集成

將Struts應(yīng)用集成到Spring框架可以采用多種方法,首先Spring明顯地被設(shè)計(jì)用于解決JEE的現(xiàn)實(shí)問題,如復(fù)雜性,性能低下,可測試性及其他;第二,Spring框架包括一個(gè)AOP實(shí)現(xiàn)讓你可以使用面向方面的程序設(shè)計(jì)技術(shù);第三, Spring 框架可以能夠非常容易地管理和協(xié)調(diào)Struts;和Struts類似,Spring也包含MVC 實(shí)現(xiàn),兩個(gè)架構(gòu)都有優(yōu)缺點(diǎn),Struts是MVC最重要的架構(gòu),很多開發(fā)團(tuán)隊(duì)學(xué)會(huì)了依靠Struts在規(guī)定時(shí)限內(nèi)開發(fā)出高質(zhì)量的軟件,因此開發(fā)團(tuán)隊(duì)寧愿 集成Spring的功能也不愿意轉(zhuǎn)到Spring MVC;好消息是Spring的結(jié)構(gòu)允許你集成Struts Web 框架、基于Spring的業(yè)務(wù)層和持久層,我們的方法是應(yīng)用Spring中的ActionSupport類去集成Struts。

3.加載應(yīng)用的context

首先我們需要使用Spring中的ContextLoaderPlugin為Struts ActionServlet去裝載Spring應(yīng)用的上下文,簡單在struts-config.xml 文件中增加plug-in,如下(1)所示:

﹤ ?xml version="1.0" encoding="ISO-8859-1" ?﹥

﹤ !DOCTYPE struts-config PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"

"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"﹥

﹤ struts-config﹥

﹤ form-beans﹥

﹤ form-bean name="searchForm"

type="org.apache.struts.validator.DynaValidatorForm"﹥

﹤ form-property name="cardno" type="java.lang.String"/﹥

﹤ /form-bean﹥

﹤ /form-beans﹥

﹤ global-forwards type="org.apache.struts.action.ActionForward"﹥

﹤ forward name="welcome" path="/welcome.do"/﹥

﹤ forward name="searchEntry" path="/searchEntry.do"/﹥

﹤ forward name="searchSubmit" path="/searchSubmit.do"/﹥

﹤ /global-forwards﹥

﹤ action-mappings﹥

﹤ action path="/welcome" forward="/WEB-INF/pages/welcome.htm"/﹥

﹤ action path="/searchEntry" forward="/WEB-INF/pages/search.jsp"/﹥

﹤ action path="/searchSubmit"

type=" com.infotek.Creditcard.actions.SearchSubmit"

input="/searchEntry.do"

validate="true"

name="searchForm"﹥

﹤ forward name="success" path="/WEB-INF/pages/detail.jsp"/﹥

﹤ forward name="failure" path="/WEB-INF/pages/search.jsp"/﹥

﹤ /action﹥

﹤ /action-mappings﹥

﹤ message-resources parameter="ApplicationResources"/﹥

﹤ plug-in className="org.apache.struts.validator.ValidatorPlugIn"﹥

﹤ set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/﹥

﹤ /plug-in﹥

﹤ plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"﹥ (1)

﹤ set-property property="contextConfigLocation" value="/WEB-INF/beans.xml"/﹥

﹤ /plug-in﹥

﹤ /struts-config﹥

 

4.使用Spring的ActionSupport類

要用Spring去集成Struts,創(chuàng)建一個(gè)Spring 上下文是必須要做的。 org.springframework.web.struts.ActionSupport 類提供一個(gè) getWebApplicationContext() 方法非常容易地獲得Spring上下文,全部你需要去做的是從Spring的ActionSupport 代替Struts 中的Action類去延伸你的action,如下所示:

package com.infotek.Creditcard.actions;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionError;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.DynaActionForm;

import org.springframework.context.ApplicationContext;

import org.springframework.web.struts.ActionSupport;

import com. infotek.Creditcard.beans.Creditcard;

import com. infotek.Creditcard.business.CreditcardService;

public class SearchSubmit extends ActionSupport { |(1)

public ActionForward execute(ActionMapping mapping,ActionForm form,

HttpServletRequest request,HttpServletResponse response)

throws IOException, ServletException {

DynaActionForm searchForm = (DynaActionForm) form;

String isbn = (String) searchForm.get("cardno");

//the old fashion way

//CreditcardService creditcardService = new CreditcardServiceImpl();

ApplicationContext ctx = getWebApplicationContext(); |(2)

CreditcardService creditcardService =

(CreditcardService ) ctx.getBean("creditcardService"); |(3)

CreditCard creditard = CreditCardService.read(cardno.trim());

if (null == creditard) {

ActionErrors errors = new ActionErrors();

errors.add(ActionErrors.GLOBAL_ERROR,new ActionError ("message.notfound"));

saveErrors(request, errors);

return mapping.findForward("failure") ;

}

request.setAttribute("creditcard", creditcard);

return mapping.findForward("success");

}

}

 

在(1)中,我們通過延伸Spring ActionSupport 類而不是Struts Action 類創(chuàng)建了一個(gè)action;在(2)中,我們使用getWebApplicationContext()方法獲得一個(gè) ApplicationContext;為了獲得商務(wù)服務(wù), 在(3)中,我們使用ApplicationContext去查找Spring bean;這個(gè)技術(shù)非常容易理解,不幸的是它把Struts的action和Spring framework綁定了,如果你想替換Spring你不得不重寫代碼,而且Struts的action不在Spring的控制之下, 遺憾的是這種方法無法獲得Spring AOP的好處。

5.結(jié)論

本文我們嘗試使用Spring的ActionSupport,ContextLoaderPlugIn去集成Struts,這是一種***效的和最簡單的方式,另外還可用Spring中的代理子類去代理Struts中的RequestProcessor和代理Struts的actions。

【編輯推薦】

  1. 淺談Struts+Hibernate+Spring的整合方法
  2. 基于OSGi和Spring開發(fā)Web應(yīng)用
  3. 如何在Java Web應(yīng)用中獲取Spring的ApplicationContext
責(zé)任編輯:yangsai 來源: IT168
相關(guān)推薦

2009-06-18 15:56:49

Struts和Spri

2009-06-19 15:52:58

Struts和Spri

2009-06-26 17:15:44

Struts2

2009-06-30 17:03:49

Spring集成Str

2009-06-19 10:00:37

Struts和Spri

2009-07-17 17:45:56

iBATIS Spri

2009-06-19 15:28:03

SpringHibernate

2009-06-01 16:18:30

SpringJPA集成

2024-01-16 08:17:29

Mybatis驗(yàn)證業(yè)務(wù)

2009-09-24 09:18:18

2009-06-05 10:46:12

struts logilogic標(biāo)簽

2009-06-10 14:53:25

netbeans st實(shí)例

2009-06-23 13:21:26

JSF和Spring

2009-06-03 09:16:03

Hibernate工作原理使用

2009-06-08 16:52:00

2020-07-14 11:00:12

Spring BootRedisJava

2009-09-22 14:46:18

struts-spri

2009-07-20 16:51:59

Struts2.0+i

2009-06-05 11:01:23

struts mvcMVC工作原理

2009-07-15 13:11:25

ibatis動(dòng)態(tài)查詢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

九九九九久久久久| 亚洲欧美中文另类| 亚洲欧美影院| 一道本无吗一区| 亚洲人成网亚洲欧洲无码| 精品国产精品自拍| 日本一区视频在线| 这里只有精品国产| 99久久亚洲精品| 欧美一区二区播放| av免费看网址| 九色网友自拍视频手机在线| 日本少妇一区二区| 中文字幕亚洲一区| 91精品在线观| 私库av在线播放| 国产精品任我爽爆在线播放| 国产欧美日本一区视频| 国产精品永久免费| 精品99在线观看| 亚洲婷婷影院| 91.com在线观看| 麻豆tv在线播放| 中文字幕在线播放| 亚洲国产日韩在线观看| 免费福利视频一区二区三区| 国产日韩欧美麻豆| 欧美激情视频一区二区| 变态另类丨国产精品| 成人国产在线| 亚洲一本大道在线| 日韩高清dvd| 99热这里只有精品1| 一本色道久久综合亚洲精品不| 欧美日韩一区二区三区在线| 精品无码av无码免费专区| 天天操天天干天天舔| 日韩avvvv在线播放| 欧美男插女视频| 91网址在线观看精品| 老司机深夜福利在线观看| 国产一区二区女| 欧美亚洲在线视频| 欧美黑人精品一区二区不卡| 最新亚洲精品| 日韩欧美亚洲国产一区| 日韩精品一区二区三区电影| 欧美女优在线观看| 国产成人啪午夜精品网站男同| 国产a∨精品一区二区三区不卡| 曰本女人与公拘交酡| 国内黄色精品| 亚洲精品国产精品国自产在线 | 欧美va在线观看| 成人午夜av电影| 国产精品入口尤物| 91视频免费网址| 国产精品国产亚洲精品| 在线观看成人小视频| www..com日韩| 欧美hdxxxxx| av在线国产精品| 亚洲国产精品天堂| 强伦女教师2:伦理在线观看| 九九热视频在线观看| 99re这里都是精品| 国内精品视频在线播放| 国内精品久久久久久久久久久| 青青草精品视频| 欧洲亚洲免费在线| 国产小视频在线免费观看| 亚洲先锋成人| 欧美激情视频网| 国产亚洲精品女人久久久久久| 欧美1区免费| 欧美美最猛性xxxxxx| 玖玖爱免费视频| 国内精品福利| 欧美—级a级欧美特级ar全黄| 精品无码一区二区三区电影桃花| 98精品久久久久久久| 亚洲午夜久久久久久久| 非洲一级黄色片| 成人久久一区| 日韩在线观看免费高清完整版| 天天干天天干天天干天天干天天干| 午夜激情在线播放| 五月天一区二区| 乱子伦视频在线看| 欧美日韩在线精品一区二区三区激情综合 | www.看毛片| 成人av资源在线| 国产精品美女网站| 一二三四区在线| 国产乱码精品一区二区三 | 6080亚洲理论片在线观看| 精品少妇一区二区三区免费观看| 国产精品一区二区人妻喷水| 一区二区三区在线免费看| 欧美一区二区三区在线看| 一级片免费在线观看视频| 视频成人永久免费视频| 国产黄人亚洲片| 欧美大片拔萝卜| 野战少妇38p| 亚洲人成精品久久久| 色偷偷888欧美精品久久久| 欧美第一页在线观看| 亚洲国产清纯| 国产精品久久久久久久久免费看 | 欧美日韩国产综合久久| 99久re热视频精品98| 肉体视频在线| 一本久久a久久免费精品不卡| 中文字幕一区二区三区四区在线视频| 成人精品国产| 欧美mv日韩mv| 亚洲一二三精品| 狠狠入ady亚洲精品| 国产ts人妖一区二区三区| 国产又大又长又粗| 国产欧美另类| 国产精品视频专区| 黄色www视频| 国产农村妇女毛片精品久久麻豆| 亚洲一卡二卡| 午夜激情在线| 91电影在线观看| 男插女视频网站| 牲欧美videos精品| 久久精品亚洲精品| 免费黄色网址在线| 高清视频一区二区| 亚洲精品国产系列| 性直播体位视频在线观看| 午夜av一区二区三区| 国产熟人av一二三区| 6080成人| 久久伊人精品天天| 国产主播第一页| 不卡视频免费播放| 9999在线观看| 一二区成人影院电影网| 欧美一级欧美一级在线播放| 亚洲最大成人综合网| 在线亚洲精品| 成人自拍网站| 97人妻精品一区二区三区动漫| jlzzjlzz国产精品久久| 先锋影音男人资源| 九九热线视频只有这里最精品| 97久久精品人人爽人人爽蜜臀| 中文字幕日韩av综合精品| 粉嫩av性色av蜜臀av网站| 久久国产毛片| 国产欧美一区二区在线播放| 91网址在线观看| 欧美日高清视频| 免费一级做a爰片久久毛片潮| 国产农村妇女精品一区二区| 国产精选一区二区| segui88久久综合| 欧美电影精品一区二区| 青花影视在线观看免费高清| 欧美aⅴ一区二区三区视频| 好吊色欧美一区二区三区| 国产1区在线| 欧美日韩免费一区二区三区视频| 亚洲一区二区自偷自拍| 日韩精品久久久久久| 欧洲在线视频一区| 在线观看精品| 中文字幕av一区二区| 最近中文在线观看| 中文字幕免费观看一区| 亚洲高清在线免费观看| 国产一区日韩| 国产精品视频地址| 欧美精品videos另类| 亚洲男同1069视频| 成人小视频在线看| 自拍欧美一区| 国产精欧美一区二区三区| 国产三级电影在线观看| 欧美午夜电影一区| 影音先锋男人资源在线观看| 蜜臀久久99精品久久久久宅男| 亚洲一卡二卡三卡| 色妞ww精品视频7777| 韩国v欧美v日本v亚洲| 无码国产精品一区二区色情男同| 午夜a成v人精品| 老熟妇一区二区| 狠狠色综合播放一区二区| 日日噜噜夜夜狠狠久久丁香五月| 中文字幕久久精品一区二区| 久久久久国色av免费观看性色| www日本在线| 天天综合天天综合色| 久久亚洲AV成人无码国产野外| 日本在线不卡视频一二三区| 中文字幕久久一区| 狼人天天伊人久久| eeuss国产一区二区三区| 亚洲国产精品毛片| 国产视频一区二| 69久久夜色精品国产7777| 国产成人天天5g影院在线观看| 欧美精品在线观看播放| 国产精品6666| 国产精品久久二区二区| 韩国av中国字幕| 老司机午夜免费精品视频| 色乱码一区二区三区熟女 | 亚洲精品乱码| 日韩中文不卡| av自拍一区| 国产欧美精品日韩精品| heyzo高清国产精品| 亚洲精品一区中文字幕乱码| 国产精品乱码久久久| 精品久久久视频| 国产67194| 久久精品免费在线观看| 国产不卡的av| 日韩精品国产精品| 欧美日韩精品在线一区二区| 91亚洲自偷观看高清| 狠狠爱一区二区三区| 色综合天天色| 97国产精品久久| 成人午夜在线影视| 亚洲国产精品热久久| 国产又黄又粗又长| 欧美在线一区二区| jizz国产免费| 一区二区三区在线视频观看58 | 中文字幕一区二区人妻| 亚洲福利电影网| 性色av无码久久一区二区三区| 国产午夜精品一区二区三区四区| 国产一线在线观看| 激情丁香综合五月| 国产又粗又长又大的视频| 国产欧美一区二区三区国产幕精品| 潘金莲一级淫片aaaaaa播放1| 国产一区网站| 欧美日韩国产不卡在线看| 大桥未久女教师av一区二区| 成人午夜在线视频一区| 一区二区三区四区日本视频| 久久乐国产精品| 搞黄网站在线观看| 日韩一级裸体免费视频| 国产精品成人99一区无码| 国产成人福利av| 99精品99久久久久久宅男| 久久久久久久性潮| 国产精品视频1区| jizz久久久久久| 国产精品久久久久久久久久久新郎 | 美女爽到呻吟久久久久| 欧美成人精品免费| 欧美精品入口| 中文字幕日韩精品无码内射| 99久久久久国产精品| 亚洲精品在线免费| 偷窥自拍亚洲色图精选| 久久草视频在线看| 久久国产精品免费精品3p| 国产经典一区二区三区 | 91系列在线播放| 粉嫩一区二区三区在线观看| 成人午夜一级二级三级| 精品裸体bbb| 日本精品在线视频| 日韩欧美2区| 国产有码一区二区| 欧美特黄不卡| 国产高清精品一区二区三区| 国产亚洲成av人片在线观黄桃| 国产精品一区二区在线观看| 国产日韩三级| 欧洲av一区| 久久精品国产www456c0m| 日韩国产美国| 五月久久久综合一区二区小说| 久久久成人精品一区二区三区| 欧美在线黄色| 久久久久久www| 男人的天堂在线免费视频| 亚洲精品麻豆| 午夜午夜精品一区二区三区文| 亚洲xxx拳头交| 免费极品av一视觉盛宴| 亚洲一本视频| 国产亚洲综合视频| 奇米影视一区二区三区小说| 天天操狠狠操夜夜操| 国产高清不卡一区| 捆绑裸体绳奴bdsm亚洲| 国产亚洲综合性久久久影院| 欧美做爰啪啪xxxⅹ性| 亚洲午夜影视影院在线观看| 成人免费毛片男人用品| 欧美在线看片a免费观看| 国产精品无码久久久久成人app| 男男视频亚洲欧美| 精品久久久久久中文字幕动漫| 国产成人三级| 黄色污污在线观看| 国产精品啊啊啊| 999精品视频在线| 国产成人av福利| 熟女俱乐部一区二区| |精品福利一区二区三区| 国产精品变态另类虐交| 欧洲精品视频在线观看| 国产黄色av网站| 亚洲成年人在线播放| www日韩tube| 久久免费精品视频| 免费一级欧美在线观看视频| 国产亚洲情侣一区二区无| 成人羞羞视频播放网站| 可以看毛片的网址| 日本色综合中文字幕| 激情成人在线观看| 国产欧美一区二区精品性| 中文字幕一区二区三区手机版 | 视频三区二区一区| 欧美+日本+国产+在线a∨观看| 亚洲 中文字幕 日韩 无码| 国产乱码精品一区二区三区av | 久久午夜国产精品| 久久无码精品丰满人妻| 在线观看91av| avav免费在线观看| 欧美在线亚洲一区| 国内精品国产成人国产三级粉色| 中文字幕日韩精品一区二区| 日韩精品一二三| 91麻豆蜜桃一区二区三区| 精品无人区无码乱码毛片国产| 欧美日韩在线视频观看| 天堂在线观看免费视频| 久久久久久久久久久国产| 风间由美一区二区av101 | 亚洲国产美女 | 国产精品巨作av| 免费在线观看视频a| 成人激情午夜影院| 日本三级欧美三级| 日韩成人久久久| 免费一级特黄特色大片| 在线不卡免费av| 先锋成人av| 国产伦精品一区二区三区照片| 在线日韩中文| 成人免费av片| 91官网在线免费观看| 淫片在线观看| 成人免费xxxxx在线观看| 亚洲欧美在线专区| 亚洲精品美女在线| 成人video亚洲精品| 高清视频一区二区三区| 国产视频一区欧美| 女人黄色一级片| 91精品国产综合久久久蜜臀粉嫩| 制服丝袜在线播放| 国产一区在线免费| 日韩中文字幕不卡| 91免费公开视频| 精品第一国产综合精品aⅴ| 超碰高清在线| 神马影院一区二区三区| 国产一二三精品| 国产精品7777777| 一区二区亚洲欧洲国产日韩| 成人影院网站ww555久久精品| 男人的天堂avav| 久久久久久9999| 国产精品无码AV| 91av国产在线| 欧美激情电影| 日本少妇毛茸茸| 欧美性做爰猛烈叫床潮| 午夜伦理在线视频| 日本一区二区视频| 日本成人在线免费视频| 亚洲色图20p| 日本亚洲一区| 97人人干人人| 日本欧美一区二区三区乱码| 国产亚洲精品码| 中文字幕精品—区二区| 国产毛片精品| 久久出品必属精品| 91成人在线免费观看|