一、数据输出

springmvc将数据携带给页面的储存工具,有三种,map,modelmap,model,它们在底层实质还是使用到了bindingawaremodelmap,对数据进行存储:

此外,也可以使用modelandview携带数据回传页面,实现代码如下

/**
 * 向页面回传数据显示 handle01/02/03
 * 使用 model map modelmap 回传数据 放置在request中
 */
@requestmapping("/handle01")
public string handler01(map<string, string> map) {
    map.put("msg","你好1!");
    return "success";
}

@requestmapping("/handle02")
public string handler02(model model) {
    model.addattribute("msg","你好2");
    return "success";
}

@requestmapping("/handle03")
public string handler03(modelmap modelmap) {
    modelmap.addattribute("msg","你好3");
    return "success";
}

/**
 * modelandview 携带数据
 */

@requestmapping("/handle04")
public modelandview handler(){
    modelandview mv = new modelandview("success");
    mv.addobject("msg","你好04");
    return mv;
}

二、@modelattribute注解

使用@modelattribute注解,可以得到请求参数中的某个对象,而不是自己new出来的对象,所有带有modelattribute注解的方法都会提前于目标方法运行,将对象放置在request域中,然后在目标方法中获取,代码示例:

// 先于目标方法执行,获取了数据库中的斗个对象的信息
@modelattribute
public void hahamymodelattribute(map<string, object> map){
        
book book = new book(100, "西游记", "吴承恩", 98, 10, 98.98);
    system.out.println("数据库中查到的图书信息是:"+book);
    map.put("haha", book);
    b1 = book;
    o1 = map;
    system.out.println("modelattribute方法...查询了图书并给你保存起来了...他用的map的类				型:"+map.getclass());
    }
}

// 目标方法,在目标方法中使用查询到的对象
@requestmapping("/updatebook")
public string updatebook(@modelattribute("haha")book book,map<string, object> model){
    o2 = model;
    b2  = book;
    object haha = model.get("haha");
    //system.out.println("传入的model:"+model.getclass());
    system.out.println("o1==o2?"+(o1 == o2));
    system.out.println("b1==b2?"+(b1 == b2)+"-->"+(b2 == haha));
     system.out.println("页面要提交过来的图书信息:"+book);
    return "success";
    }

这样做的好处在于,避免了全字段修改,不给值的地方spring会默认使用null进行代替,这回在修改之前每个键值对都有值。

到此这篇关于springmvc数据输出相关知识总结的文章就介绍到这了,更多相关springmvc数据输出内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!