我可以在struts.xml中的拦截器参数声明中使用请求参数的值吗?

时间:2018-01-23 15:20:58

标签: java parameters struts2 interceptor

我使用的是Struts 2.3。

我有一个带参数的拦截器(注意:代码略微简化以删除一些强制转换):

private String parameterName = null;
private String parameterValueSuffixParameter = null;
// getter and setter.

// in my doIntercept(), get the view.suffix Integer parameter from the page;
parameterName.concat(context.getParameters().get(parameterValueSuffixParameter)[0]);

此参数在struts.xml操作定义中定义:

<action name="actionName" method="methodName" class="com.example.myAction>
    <interceptor-ref name="defaultStack">
        <param name="interceptor.parameterName">parameterValue</param>
        <param name="interceptor.parameterValueSuffixParameter">view.suffix</param>
    </interceptor-ref>
    <result name="success">/jsp/result.jsp</result>
</action>

并在页面上:

<s:hidden name="view.suffix" value="%{view.suffx}" />

现在,我想要做的是通过直接使用拦截器参数中的后缀值来摆脱struts.xml和parameter.concat行中的额外参数。这可能吗?

我已经尝试了parameterValue${view.suffix},但是这不起作用,parameterName实际上是以字符串形式设置的。

1 个答案:

答案 0 :(得分:0)

在检查了struts Jira上的一些问题之后,我发现这个功能已经在Struts 2.5.9中使用Lazy Parameters实现了,但是在我使用的Struts 2.3中不可用。由于在我目前的开发阶段更新Struts2是不可行的,我将不得不处理我的解决方法。