您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 3浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Struts2创建项目7---ModelDriven

宝哥大数据 发布时间:2017-08-20 12:52:21 ,浏览量:3

预期的效果

这里写图片描述

使用id, 直接设置值

这里写图片描述

实际无法获取值

这里写图片描述

为什么:我们可以通过查看CompoundRoot的情况,会发现root顶部存储的是MessageAction对象, 所以直接获取id, title, 是找不到的,需要通过msg对象获取

这里写图片描述

在addInput.jsp中将设置值改为msg.xx ,再次执行

这里写图片描述

但是,是哦那个msg.xx 感觉比较繁杂, 如果可以直接使用xx来设置值就好了,那么就是本节所要讲的ModelDriven, 实现ModelDriven接口, 重写getModel()方法
package com.chb.struts2Test.action;

import com.chb.struts2Test.model.Message;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class MessageAction extends ActionSupport implements ModelDriven
{

    private static final long serialVersionUID = 1L;
    //在MessageAction中不在传入所有属性, 使用Message对象封装
    private Message msg;
    public MessageAction(){

    }
    public MessageAction(Message msg) {
        this.msg = msg;
    }
    public void setMsg(Message msg) {
        this.msg = msg;
    }
    public Message getMsg() {
        return msg;
    }


    public String addInput() {

        return "success";
    }


    public String add() {

        return "success";
    }
    @Override
    public Message getModel() {
        if (msg == null) {
            msg = new Message();
        }
        return msg;
    }   
}
我们在来看CompoundRoot的情况,我们回发现Message对象在CompoundRoot的顶部, 那么我们就可以直接获取id, 这就是ModelDriven的功能,将Action中的对象添加到CompoundRoot

这里写图片描述

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0929s