ModelDrivenInterceptor
核心代码块
类似属性驱动
1. 判断此Action是否继承ModelDriver
2. 获取值栈
3. 获取对象Model
4. 将对象Model放入到栈顶
5. 执行属性驱动,自动将放入到栈顶的属性设置最新的值。
public String intercept(ActionInvocation invocation) throws Exception {
Object action = invocation.getAction();
if (action instanceof ModelDriven) {
ModelDriven modelDriven = (ModelDriven) action;
ValueStack stack = invocation.getStack();
Object model = modelDriven.getModel();
if (model != null) {
stack.push(model);
}
if (refreshModelBeforeResult) {
invocation.addPreResultListener(new RefreshModelBeforeResult(modelDriven, model));
}
}
return invocation.invoke();
}