我使用的是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实际上是以字符串形式设置的。
答案 0 :(得分:0)
在检查了struts Jira上的一些问题之后,我发现这个功能已经在Struts 2.5.9中使用Lazy Parameters实现了,但是在我使用的Struts 2.3中不可用。由于在我目前的开发阶段更新Struts2是不可行的,我将不得不处理我的解决方法。