ModelDrivenInterceptor的核心源码
【解释】 ModelDrivenInterceptor是默许的拦阻器链(struts-default)的一部份,当一个要求经过ModelDrivenInterceptor的时候,它会断定当前要调用的Action对象是不是实现了ModelDriven接口, 如果实现了这个接口,则调用getModel()办法,并把返回值压入ValueStack。
// 核心代码:
public class ModelDrivenInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Object action = invocation.getAction();
// 如果action实现了ModelDriven接口,则履行下面的代码
if (action instanceof ModelDriven) {
// 把action强转为ModelDriven
ModelDriven modelDriven = (ModelDriven) action;
// 取得值栈
ValueStack stack = invocation.getStack();
// 取得model
Object model = modelDriven.getModel();
if (model != null) {
// ***** 把取得的model压入ValueStack的对象栈(Value Stack Contents)中 *****
stack.push(model);
}
}
return invocation.invoke();
}
}
ModelDrivenInterceptor的核心源码
【解释】 ModelDrivenI