我在Action里面加上这样一个拦截器后就无法取得值了。
例子:
@InterceptorRef(value="common")
public class StoreAction extends CRUDActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
页面有个提交过后应该会自动映射到name这个属性里面。
但是加入@InterceptorRef(value="common")后,映射始终为空!
拦截器配置如下。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
value="crud-default" />
<!-- 用于CRUD Action的parent package -->
<package name="crud-default" extends="convention-default">
<!--
基于paramsPrepareParamsStack, 增加store
interceptor保证actionMessage在redirect后不会丢失
-->
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<interceptor-ref name="paramsPrepareParamsStack" />
</interceptor-stack>
<!-- 访问各页面要形成用户相应的导航栏所需的 拦截器-->
<interceptor name="common" class="com.lesogo.cmw.web.interceptor.CommonInterceptor">
</interceptor>
<!-- 登录所需的拦截 -->
<interceptor name="login" class="com.lesogo.cmw.web.interceptor.LoginInterceptor">
</interceptor>
</interceptors>
<default-interceptor-ref name="crudStack" />
</package>
<!--
使用Convention插件,实现约定大于配置的零配置文件风格. 特殊的Result路径在Action类中使用@Result设定.
-->
<constant name="struts.devMode" value="false" />
<constant name="struts.i18n.encoding" value="GB2312" />
<package name="NG" namespace="/" extends="struts-default">
<!-- 全局的登录页面 -->
<global-results>
<result name="login" type="redirectAction">/client/login.action</result>
</global-results>
<action name="showUpload">
<result>/upload.jsp</result>
</action>
<action name="doUpload" class="com.lesogo.cmw.tools.FileUpload">
<result name="input">/upload.jsp</result>
<result>/upload_success.jsp</result>
</action>
</package>