Action实现Prepareable接口通过prepare()方法实现预处理功能。

 

paramsPrepareParamsStack拦截器栈是在strust2-default.xml中定义的,里面定义了很多拦截器,其中最重要的三个拦截器是:params、prepare、modelDriven。
 params:负责将请求参数值设置到Action中同名的属性中。
 prepare:当Action实现Prepareable这个接口时,这个拦截器就会拦截prepare()方法。如果想要在execute()方法之前执行某种业务逻辑,可以使用Prepareable接口的prepare()方法实现。也可用作预处理实现,如实现编辑和预览。
 modelDriven:如果Action实现了ModelDriven接口,这个拦截器就会把getModel()方法中的返回结果压入值栈。这意味着可以在结果页面上直接使用model对象的属性。

执行顺序:
 首先,params拦截器会给Action中的相关参数赋值,如ID、username、password等。
 然后,prepare拦截器执行prepare()方法,可在prepare()方法中自定义业务逻辑,实现预处理等。如:根据参数ID调用方法设置model。
 再然后,modelDriven拦截器会将model对象压入值栈。
 最后,params拦截器会将参数再次赋值给model对象