我有一个带拦截器配置的默认包,我将该包扩展到另一个包并调用相同的拦截器
<action name="availability**">
<param name="subTab">availability</param>
<interceptor-ref name="tabStack"/>
<result>/WEB-INF/jsp/index.jsp?include=visibilit/availability.jsp</result>
</action>
问题是我的拦截器代码中没有读取参数:
Map params = invocation.getInvocationContext().getParameters();
subTab = params.get("subTab").toString(); //NULL exception
我知道如何将参数传递给扩展拦截器吗?
谢谢!
答案 0 :(得分:0)
你能尝试这种语法
吗?<action name="availability**">
<interceptor-ref name="tabStack">
<param name="subTab">availability</param>
</interceptor-ref>
</action>
我不确定但也许这会起作用
答案 1 :(得分:0)
您调用的getParameters()方法仅返回HTTP请求中的参数。在struts.xml中设置的参数称为“静态参数”,您可以像这样访问它们(在intercept()方法中):
ActionConfig config = invocation.getProxy().getConfig();
Map<String, String> parameters = config.getParams();
String subTab = params.get("subTab");