7..Action类接收参数(模型驱动)
. 模型驱动实际上就是将JavaBean对象放到栈顶
. 模型驱动是将多个从页面获取的值直接做用到某个指定的JavaBean上。
. 模型驱动是通过模型驱动拦截器ModelDriver实现的
. 模型驱动的实现必须借助于ModelDriver<T>类。
. 模型驱动 在页面声明参数和获取数据时不用写user.name,直接写name
${requestScope.name},${requestScope.pwd},${requestScope.age}
//模型驱动 public class UserModelAction implements ModelDriven<User> { public String execute(){ System.err.println("user is :"+this.user); return "success"; } // 声明user对象的实例,必须要直接初始化,可以提供getXX/getXx方法,建议不要提供 private User user = new User(); public User getModel() { return user; } }
//源码 /* @Override 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(); //调用ModelDriven中的getModel()方法 if (model != null) { stack.push(model); //压栈 } if (refreshModelBeforeResult) { invocation.addPreResultListener(new RefreshModelBeforeResult(modelDriven, model)); } } return invocation.invoke(); } */