2010-06-12 54 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