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对象
本文出自 “宅寂” 博客,请务必保留此出处http://zhaiji.blog.51cto.com/9280272/1580689
原文地址:http://zhaiji.blog.51cto.com/9280272/1580689