SpringMVC数据输出相关知识总结

一、数据输出

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数据输出内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用springmvc处理模型数据

    springmvc处理模型数据 很多情况下页面上需要很多数据,单单返回页面是不行的,那么springmvc如何将数据返回到该页面呢 springmvc提供了四种方式来输出模型数据 ModelAndView: 处理返回值为ModelAndView时,可以将该对象中添加数据模型 Map及Model:入参为Model.ModelMap或Map时,处理方法返回时,Map中的数据会自动添加到模型中 @SessionAttributes: 将模型中的某个属性暂存到HttpSession中,以便多个请求之间共

  • Springmvc如何返回xml及json格式数据

    问:@ResponseBody注解怎么指定返回xml 还是json 答:@RequestMapping 的produces 属性指定 produces = "application/xml" 或者 produces = "application/json" 返回xml 文件编码是utf-8,需要以下这么写,否则乱码 @RequestMapping(value = "/rss", produces = "application/xml;c

  • SpringMVC处理数据输出的实例代码

    一. 使用ModelAndVIew处理模型数据 控制器处理方法的返回值如果为ModelAndView, 则其既包含视图信息,也包含模型数据信息.数据是放在请求域中的. //使用ModelAndView @RequestMapping("/output3") public ModelAndView output3(){ ModelAndView modelAndView = new ModelAndView("success"); //viewName即为跳转页面 m

  • springMVC如何对输入数据校验实现代码

    前言 数据的校验是交互式网站一个不可或缺的功能,数据验证分为客户端验证和服务器端验证.前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验:但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已,服务器端验证是整个应用阻止非法数据的最后防线,通过在应用中编程实现. 客户端验证在大多数情况下,使用 JavaScript 进行客户

  • Springmvc如何实现向前台传递数据

    1) 在springmvc方法的形参中定义Map,Model,ModelMap,并在方法中通过这三个对象进行值的传递: ①其中Map和ModelMap使用方式是一致的: @RequestMapping("/detail") public String detail(Integer id, //ModelMap modelMap Map modelMap ){ HashMap<String,String> conditions=new HashMap<>(); c

  • SpringMvc响应数据及结果视图实现代码

    响应数据和结果视图 返回值分类 controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址. //指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp @RequestMapping("/testReturnString") public String testReturnString() { System.out.println("AccountController 的 testRetur

  • Springmvc ResponseBody响应json数据实现过程

    该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如:json,xml 等,通过 Response 响应给客户端 示例 需求:使用@ResponseBody 注解实现将 controller 方法返回对象转换为 json 响应给客户端. 前置知识点:Springmvc 默认用 MappingJacksonHttpMessageConverter 对json数据进行转换,需要加入jackson 的包. 注:2.7.0以下的

  • SPRINGMVC JSON数据交互如何实现

    json是一种前后端分离思想所使用的存储数据的格式,然而使用Springmvc这个框架在对前台参数处理时会遇到一些问题,下面我们来看看如何进行数据交互 jsp页面: @RequestBody注解实现接收http请求的json数据,将json数据转换为java对象进行绑定 @ResponseBody注解实现将Controller方法返回java对象转换为json响应给客户端. 加上@ResponseBody注解,就不会走视图解析器,不会返回页面,目前返回的json数据.如果不加,就走视图解析器,返

  • SpringMVC数据输出相关知识总结

    一.数据输出 SpringMVC将数据携带给页面的储存工具,有三种,map,ModelMap,model,它们在底层实质还是使用到了BindingAwareModelMap,对数据进行存储: 此外,也可以使用ModelAndView携带数据回传页面,实现代码如下 /** * 向页面回传数据显示 handle01/02/03 * 使用 model map modelMap 回传数据 放置在request中 */ @RequestMapping("/handle01") public St

  • SpringMVC 参数绑定相关知识总结

    请求进入DispatcherServlet的doDispatch后,获取HandlerMethod.然后根据HandlerMethod来确认HandlerApapter,确认后执行HandlerAdapter的handle方法.这里确认HandlerApater为RequestMappingHandlerAdapter,在执行handlerMethod之前,需要处理参数的绑定. 1. 简单参数绑定 执行HandlerAdapter的handler方法后,进入RequestMappingHandl

  • 探讨.get .post .ajax ztree 还有后台servlet传递数据的相关知识

    servlet给前台传递data串 用的方法是 PrintWriter out = response.getWriter(); // response.sendRedirect("test.jsp"); String s = "[{'id':'1', 'pId':'0', 'name':'test1'},{'id':'11', 'pId':'1', 'name':'test11'}, {'id':'12', 'pId':'1', 'name':'test12'}, {'id'

  • struts2的流程和一系列相关知识代码解析

    1.客户端初始化一个指向servlet容器(Tomcat)的请求: 2.这个请求经过一系列的过滤器,接着FilterDispatcher被调用: 3.FilterDispatcher询问ActionMapper来决定这个请求是否要调用某个action: 4.如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,ActionPro根据ConfigurationManager询问框架的配置文件,找到需要调用的Action类,一般

  • 浅谈PySpark SQL 相关知识介绍

    1 大数据简介 大数据是这个时代最热门的话题之一.但是什么是大数据呢?它描述了一个庞大的数据集,并且正在以惊人的速度增长.大数据除了体积(Volume)和速度(velocity)外,数据的多样性(variety)和准确性(veracity)也是大数据的一大特点.让我们详细讨论体积.速度.多样性和准确性.这些也被称为大数据的4V特征. 1.1 Volume 数据体积(Volume)指定要处理的数据量.对于大量数据,我们需要大型机器或分布式系统.计算时间随数据量的增加而增加.所以如果我们能并行化计算

  • C 语言关于联合体的相关知识

    当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union).在C Programming Language 一书中对于联合体是这么描述的: 1)联合体是一个结构: 2)它的所有成员相对于基地址的偏移量都为0: 3)此结构空间要大到足够容纳最"宽"的成员: 4)其对齐方式要适合其中所有的成员: 下面解释这四条描述: 由于联合体中的所有成员是共享一段内存的,因此每个成员的存放首地址相对于于联合体变量的基地址的偏移量为0,即所有成员的首地址都是一样的.为了使得所有成员能够

  • python数据类型相关知识扩展

    一.命名元祖 在python基础中, 我们学习元祖的时候,取元祖内部的元素都是通过索引来进行取值的.但是这种取值方式不够友好, 所以我们引入命名元祖的方式对元祖进行字典式取值,这种方式比起字典存储占用的内存较少.如果数据不需要变化,可以用命名元祖替代字典. 常规元祖取值方式: info = ("flora", 28, "女") name = 0 age = 1 gender = 2 print(info[name]) # 获取姓名 print(info[age])

  • Python入门学习之类的相关知识总结

    前言 Python是面向对象的程序设计(Object Oriented Programming). 面向对象的程序设计的一条基本原则是: 计算机程序由多个能够起到子程序作用的单元或者对象组合而成. 面向对象的程序设计的一个关键性概念是: 数据以及数据的操作(即函数方法)封装在一起. 这个概念对于接触C++的我来说已经很熟悉了.就是"类"Class. Python完全支持所有面向对象的基本功能,比如: "封装"."继承"."多态"

  • Java基础学习之运算符相关知识总结

    1.算术运算符 +表示加法运算符 -表示减法运算符 *表示乘法运算符 /表示除法运算符 %表示取模/取余运算符 package com.lagou.Day03; /** * 算术运算符 */ public class Demo01 { public static void main(String[] args) { //1.声明两个int类型的变量并初始化 //int ia = 6;ib = 2;//表示声明两个int类型的变量ia和ib,不推荐使用 int ia = 6; int ib = 2

随机推荐