如何在Java中访问struts拦截器参数?

时间:2010-06-12 02:10:31

标签: java struts2 struts

我在struts.xml中有以下代码:

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

我想在拦截器例程中访问参数tabName,我该怎么做?我试过了

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

但是params空了......

谢谢!

2 个答案:

答案 0 :(得分:3)

Interceptor对象应该对用于创建/配置它的xml片段一无所知,这是Struts2内部的东西。想一想:拦截器类(eg)没有一些“params”属性,它甚至可能(在理论上)通过某种与你发布的struts.xml无关的机制实例化。这是解耦,Struts2认真对待。

确实,一些拦截器有一些可配置的参数;但它们通常是特定类的属性。在您的示例中,您的特定拦截器类(您应该知道)可能具有方法setTabName() getTabName()。当读取struts.xml文件并实例化拦截器时,struts2将调用setter。吸气剂是你应该照顾的。查看你的拦截器类文档。

答案 1 :(得分:0)

在您的拦截器类中:

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

Struts将在拦截器初始化时调用此setter。