我在struts.xml中有以下代码:
<interceptor-ref name="checkTabsStack">
<param name="tabName">availability</param>
</interceptor-ref>
我想在拦截器例程中访问参数tabName,我该怎么做?我试过了
Map params = ActionContext.getContext().getParameters();
但是params空了......
谢谢!
答案 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。