问题:由于modelDriven拦截器的执行优于action内方法的执行,
导致压入栈定的对象为成员变量中new出来的没有值的对象
想要给该model赋值需要使用一个parepar拦截器
1.action类实现Preparable接口
2.则prepareDoXXX 或者prepareXX方法 会在XXX方法前执行
如
public void prepareDoDesignSurvey() throws Exception {
this.model = surveyService.getSurveyWithChildren(sid);
}
3.配置拦截器
<interceptors>
<!-- 登陆拦截器 -->
<interceptor name="loginInterceptor" class="cn.itcast.surveypark.struts.interceptor.LoginInterceptor" />
<!-- 自定义拦截器栈 -->
<interceptor-stack name="loginStack">
<interceptor-ref name="loginInterceptor" />
<!-- 该拦截器栈专门为prepare和model驱动而是用 -->
<interceptor-ref name="paramsPrepareParamsStack" />
</interceptor-stack>
</interceptors>
<!-- 定义默认拦截器栈 -->
<default-interceptor-ref name="loginStack" />