2010-06-12 51 views
1

我在struts.xml中下面的代碼:如何訪問Java中的struts攔截器參數?

<interceptor-ref name="checkTabsStack"> 
<param name="tabName">availability</param> 
</interceptor-ref> 

,我想訪問的攔截程序的參數TABNAME,我該怎麼做呢?我試圖

Map params = ActionContext.getContext().getParameters(); 

但PARAMS來自空...

謝謝!

回答

3

Interceptor對象應該對用於創建/配置它的xml片斷一無所知,這是Struts2內部的東西。想一想:攔截器類(eg)沒有一些「params」屬性,它甚至可能(理論上)由某種與您發佈的struts.xml無關的機制實例化。這是去耦,而Struts2非常重視。

確實,一些攔截器有一些可配置的參數;但他們通常會是特定班級的特性。在你的例子中,你特定的攔截器類(你應該知道)可能有方法setTabName()getTabName()。當讀取struts.xml文件並實例化攔截器時,setter將被struts2調用。吸氣劑是你應該關注的。看看你的攔截器類文檔。

+0

好的,我通過閱讀攔截器內的動作參數來解決我的問題;我仍然需要有一個類關聯w /動作來做到這一點,雖然.. – Ricardo 2010-06-12 09:30:15

0

在你的攔截器類:

public void setTabName(String tabName) { 
    // ... 
} 

Struts將會調用此setter當攔截器被初始化。

+0

試過,但我沒有得到任何值在攔截器類的getter中... – Ricardo 2010-06-12 09:53:35