配置interceptor-stack中的一个问题 博客分类: Java技术 WorkflowDAO
程序员文章站
2024-02-13 10:17:10
...
一般在使用iterceptor-stack时,我们遵从如下顺序:
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
这样就把参数set到action中,但是为了一些比如预处理的需要,我们也常用到,prepare这个iterceptor,并在action中对应使用public void prepare(){};此时要注意,一般我们先通过上面的stack set了部分数据,比如有一个user_id,我们在页面里改了user的name,这样我们首先通过user_id获得user信息,然后需要吧name set到这个对象中,然后再dao中update,这样首先需要,<interceptor-ref name="prepare"/>,然后再来一次: <interceptor-ref name="params"/>从而把改变的字段值set入,再来update。
整体的用于update的interceptor-stack的一个参考(使用了prepare):
<interceptor-ref name="reference-resolver"/>
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
当然最后有,验证及正常的workflow设定
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
这样就把参数set到action中,但是为了一些比如预处理的需要,我们也常用到,prepare这个iterceptor,并在action中对应使用public void prepare(){};此时要注意,一般我们先通过上面的stack set了部分数据,比如有一个user_id,我们在页面里改了user的name,这样我们首先通过user_id获得user信息,然后需要吧name set到这个对象中,然后再dao中update,这样首先需要,<interceptor-ref name="prepare"/>,然后再来一次: <interceptor-ref name="params"/>从而把改变的字段值set入,再来update。
整体的用于update的interceptor-stack的一个参考(使用了prepare):
<interceptor-ref name="reference-resolver"/>
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
当然最后有,验证及正常的workflow设定