1. 程式人生 > >SSH框架,往Action注入bean

SSH框架,往Action注入bean

第一種方式:DelegatingRequestProcessor方式 DelegatingRequestProcessor繼承自RequestProcessor。

為了讓Struts使用DelegatingRequestProcessor,需要在struts-config.xml檔案中增加如下程式碼:

<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />

這一行程式碼是告訴Struts用DelegatingRequestProcessor來代替原來的RequestProcessor。完成設定這個設定後,Struts會將攔截到的使用者請求轉發到Spring context下的bean,根據bean的name屬性來匹配。而Struts中的action配置則無需配置type屬性(即使配置了type屬性也不起任何作用,除非在spring的配置檔案裡找不到對應的name屬性值



配置了上面的一行程式碼後,就可以在Spring的配置檔案(可以不是applicationContext.xml,比如假設這裡是action- servlet.xml)中配置用來處理請求的Action bean了。配置的時候需要注意的是Action bean不再需要id屬性,而要用name替代id屬性,這時name屬性的值應與struts-config.xml中配置的Action的path屬性的值相同。

這樣,處理請求的Action就能處於Spring的管理之下了。

第二種方式:DelegatingActionProxy方式 struts-config.xml中的action的type設定為:org.springframework.web.struts.DelegatingActionProxy 對應的具體Action繼承自類:DelegatingActionProxy(這種方式無需在struts-config.xml檔案中新增<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />配置) 然後就可以在Spring的配置檔案(可以不是applicationContext.xml,比如假設這裡是action- servlet.xml)中配置用來處理請求的Action bean了。配置的時候需要注意的是Action bean不再需要id屬性,而要用name替代id屬性,這時name屬性的值應與struts-config.xml中配置的Action的path屬性的值相同。
第三種方式:ActionSupport方式 自己寫一個ActionBase類,繼承自ActionSupport類,通過ActionSupport中的getWebApplicationContext().getBean(beanName)方式獲得spring管理的bean,然後讓所有的對應的Action繼承自改ActionBase類,該方法避免了配置檔案的增加。 public Class ActionBase extends ActionSupport{        public Object getBean(String beanName){              return getWebApplicationContext().getBean(beanName);        } }

相關推薦

SSH框架Action注入bean

第一種方式:DelegatingRequestProcessor方式 DelegatingRequestProcessor繼承自RequestProcessor。 為了讓Struts使用DelegatingRequestProcessor,需要在struts-conf

ssh框架總結之action接收參數的三種方式

ext 方式 clas ems driver cor void 圖片 div 頁面將參數傳遞給action的三種方式 一是通過屬性傳值: 將頁面和action的的屬性值保持一致,在action上寫上該屬性的set和get方法,這樣在頁面提交參數的時候,action就會調用s

在Eclipse下手動搭建SSH框架並使用Hibernate外掛反向生成實體類和關係對映檔案。

寫在前面: 接觸SSH框架有一段時間了。在整合實戰的過程中遇到了各種各樣的問題,最後都一一解決了。 下面記錄一個SSH框架整合實戰的小演示,這個演示旨在記錄學習SSH框架的艱辛過程。 重點知識: 1,在Eclipse中下手動搭建SSH框架,並把SessionFac

SSH框架zyupload外掛檔案非同步上傳

public String uploadFile(String firstPath, String prePath, MultipartFile[] file) throws IOException { String finalPath = ""; for (int i = 0; i <

SSH框架統計網站線上人數

dao層實現類 public class UserDaoImpl extends HibernateDaoSupport implements UserDao { public TblUser checkLogin(TblUser user) { Session sessi

SSH框架在專案啟動的時候載入資料庫資訊

package com.simpefect.listener; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet.ServletContextEvent; import java

如何搭建SSH框架myeclipse搭建SSH框架詳解

1、先新建個Web專案 2 、新增struts2依賴包和配置檔案 右擊工程,選擇“myeclipse”在二級選單中找到“Add Struts Capabiliies” 點選進入 3、新增spring框架依賴包和配置檔案 右擊工程,選擇“myeclipse”在二

【基於SSH框架的個人部落格系統04】DAO層Service層與Action

DAO層-資料的增刪改查 J2EE開發人員使用資料訪問物件(DAO)設計模式把底層的資料訪問邏輯和高層的商務邏輯分開.實現DAO模式能夠更加專注於編寫資料訪問程式碼。DAO層的每個類都依賴於SessionFactory,SessionFactory介面負責初始化Hibern

JavaEE SSH框架整合(二) struts2 載入本地dtd檔案action配置

1. 載入struts2的dtd檔案,使struts.xml不用聯網就能驗證,並在eclipse中有提示 在src下建立struts.xml:   <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsP

Action基類中注入service的方法(SSH框架

Action基類  BaseAction:    protected LogService logService;         //並設定setget方法    public void saveLog() {        logService.saveLog();   

ssh框架提交表單數據後數據庫表出現問號?的解決方法

div nco pla play character isp 指定 提交表單 span 解決方法如下:連接數據庫的時候需要指定編碼方式,如下所示: jdbc.url = jdbc:mysql:///dbName?useUnicode=true&amp;charact

JAVAWeb SSH框架 上傳文件如2007的EXCEL

-s extends void shee ats bmi UC width allow 下面的代碼是上傳EXCEL的代碼,其實,就是在上傳文件到服務器,代碼都差不多,只是接收的文件的類型改一下即可。 本人用的服務器是tomcat7,所以上傳的文件保存在D:\MyWor

記錄Spring Boot大坑一個bean中如果有@Test單元測試不會注入成功

記錄Spring Boot大坑一個,在bean中如果有@Test單元測試,不會注入成功 記錄Spring Boot大坑一個,在bean中如果有@Test單元測試,不會注入成功 記錄Spring Boot大坑一個,在bean中如果有@Test單元測試,不會注入成功 org.springframework.

再整合ssh關於Spring IOC注入問題

No matching editors or conversion strategy found IOC問題: EmpService bean 實現了 Iemp介面,就不能直接作為引數傳入Action裡面; 要將Iemp介面作為物件引數傳入Action,然後在Action引用介面物件裡面的方法。 Spri

JAVA學習之——SSH框架學習路線思維腦圖。

        對於即將畢業的我,其實有著各種各樣的焦慮,焦慮到經常失眠,就會去想,畢業之後我該做什麼,是從事軟體行業還是專升本;暑假的時候我在成都待了一個月,瞭解了一些公司,在Java程式設計師招聘這塊,幾乎是不招女生,也可以說是選擇這個專業的女生也特別的少,原因大家都是一

Spring通過註解annotation方式注入Bean採用動態代理那麼JDK代理和CGLIB代理區別?

切面程式設計是Spring中非常重要的一個模組,切面程式設計的實現原理是動態代理,那麼動態代理又有兩種實現方式:一種方法是直接實現JDK中的InvocationHandler介面,另一種方法是繼承CGLIB。 首先如果不是很清楚兩者的區別的話,記住一般情況下Invocati

SSH框架多個持久層物件相互引用從而引發分頁查詢中查詢所得的持久化物件轉換為JSON字串報錯的原因及解決方案

引言: 使用EasyUI框架的小夥伴們都知道,在使用datagrid(資料表格)時,會傳入如一個URL,用於請求資料表格中的所顯示的資料: <!--建立一個空表格--> <table id="mytable"></table>

spring中bean的建構函式Autowired(Value)注入與@PostConstruct呼叫順序

最近在專案開發中遇到這樣一個需求,由於元資料在短時間內被客戶端多次讀取,因此希望直接將資料儲存到記憶體,以減少網路開銷,藉助guava cache於是有了下面這個類 /** * Created on 2018/10/18 */ @Component publ

淺談Spring框架自動注入物件IoC/DI的過程(二)

在上一篇部落格中,我已經寫到怎麼用自動注入的物件了。可能我說的不是太清楚,有些朋友還不是很明白,那麼這次我們結合service層呼叫DAO層的方法,再詳細說說怎麼隨心所欲的使用物件。 先看一下程式碼:

SSH框架學習之Spring ---- 2、認識AOP ! 警告前方增強怪!

一、AOP底層分析 需求:根據客戶需要,當前的Dao.class中的add()方法,在呼叫之前需要列印一條"開始列印"語句。 以往的做法: 動add的程式碼,該怎麼改就怎麼改。這其實是不符合設計模式的,對於業務的拓展不修改原來的程式碼,這就是AOP思想。 概念 AOP啥意