struts2與dwr整合(初級)

2021-07-16 20:22:49 字數 1578 閱讀 6576

專案需要用到ajax,最開始本想用jquery,最後權衡下選擇了dwr。

這裡說的是dwr整合ssh,其實dwr完全沒有必要和struts2結合,畢竟dwr需要返回的是object,而struts2直接轉向了頁面。非要強制將二者整合,只能做乙個偽action,這個偽action返回的還是object。當然dwr和spring、hibernate結合就非常好,可以將struts2戲稱為小三了 o(∩_∩)o ~

注意:此處之所以要用到dwr,是因為我如果不想在執行完action之後,頁面進行跳轉,因為要是使用struts的話,頁面就必須跳轉,所以使用dwr,此處僅是自己的看法。

啥話都不說,直接來**

此處的原因是兩者的配置檔案發生衝突。

首先,為何會衝突?其實原因很明顯,就是struts2的過濾器和dwr的過濾器產生衝突,web server無法準確判斷準確的位址,

開啟web.xml會發現,我們配置了如下的資訊

首先是struts2的過濾器

struts2

org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter

可以看到,在url-pattern中,我們將web專案下的所有路徑都交給了struts2來處理

然而,我們又配置了dwr的過濾器

dwr-invoker

dwr servlet

direct web remoter servlet

org.directwebremoting.servlet.dwrservlet

debug

true

雖然,這裡我們配置了url-pattern/dwr/*下的所有路徑歸dwr,

但是,在前方已經配置了將web專案下的所有路徑交給struts2,

因此,這就是產生衝突的根本原因。

《解決方案》

那麼,如何來解決這個衝突呢?struts2和dwr誰也無法替代誰,在專案中必不可少,

我們能想到的最直接的方案就是:在struts2所處理的路徑中,分出一部分讓dwr處理,這樣就兩全其美了。

要分出struts2不處理的路徑,其實很簡單。

在struts2中有個屬性叫excludepattern,也就是用來配置struts2不處理的路徑?

看到這裡,我們突然恍然大悟,心情異常激動,

於是我們只需要在struts.xml中新增配置

讓/dwr/*下

的全部路徑歸dwr。

Struts2與Spring的整合

struts2與spring的整合,是mvc和ioc的整合,必須充分利用他們的特性 1 整合的原理 struts2 攔截使用者請求後,需要將資訊通過struts.xml的配置檔案的內容傳遞到相應的action中,在這個時候就需要建立action例項,整合spring框架後,action例項交給spr...

struts2與jfeechart整合相關問題

color red 1 struts2版本低,它的struts jfreechart plugin.jar中檔案struts plugin.xml中定義的包沒有繼承struts default color 原始檔如下 150200 解決辦法 解壓jar檔案,將struts plugin.xml改為 ...

Struts2與Spring的整合

今天倒騰了半天,終於是把這個兩個框架整合到一起了。還是要寫一下總結,同時給大家一些幫助。開發環境 myeclipse 9.0 不好用!tomcat6.0 1.準備工作 需要匯入的包 struts2與spring基本的包就不用說了,我用的是struts2.1 spring 3.0,尤其要注意 別少匯入...