JAVA struts2 继承modelDriven model

我在baseAction继承ActionSupport实现ModelDriven我有一个A类继承baseAction,我用put等方法放入值栈this.getModel能... 我在baseAction继承ActionSupport实现ModelDriven 我有一个A类继承baseAction,我用put等方法放入值栈 this.getModel能取到值 可是我有一个B也是继承baseAciotn 但是我没用任何方法加入值栈 怎么this.getModel中能看到B的属性值呢?如果说不同的是 我在B类中写的集合给了get方法 我知道struts能在页面的data获得值 但是和model有关么? 展开
 我来答
丶射手
2013-11-18
知道答主
回答量:45
采纳率:0%
帮助的人:21.7万
展开全部

你可以看看struts2的源代码关于ModelDriven 拦截器的实现:

@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();
            if (model !=  null) {
                stack.push(model);
            }
            if (refreshModelBeforeResult) {
                invocation.addPreResultListener(new RefreshModelBeforeResult(modelDriven, model));
            }
        }
        return invocation.invoke();
    }


如果你的action instanceof ModelDriven,struts会调用getModel();方法获得model然后stack.push(model);放进ValueStack中,不需要你手动push。


至于ValueStack如何实现将页面的data传入到Action中,可以参考下面的一篇博文:

http://lwx841017-yahoo-com-cn.iteye.com/blog/619815



gameman520
2013-11-17 · 超过13用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:38.3万
展开全部
实现了ModelDriver,启用模型驱动,数据会自动封装到模型中。(前提是数据模型中提供set方法)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式