SpringMVC的返回值类型(六)中

简介: SpringMVC的返回值类型(六)

四. 返回Map 形式


Map 与Model 一样,也是可以收集数据,但不知道如何控制视图名,所以用URL 来进行相应的控制。


@RequestMapping(value="/login")
  public Map<String,String> toLogin(){
    Map<String,String>map=new HashMap<String,String>();
    map.put("name","两个蝴蝶飞的Map形式");
    return map;
  }


20190819173953845.png


五. 返回ModelMap 形式


ModelMap, 是一个Map,但又具有Model 类的某些特性。 是Model和Map的结合体。

当然,ModelMap 也是通过 url来控制跳转的视图名的。


@RequestMapping(value="/login")
  public ModelMap toLogin(ModelMap modelMap){
    //可以用model的形式
    modelMap.addAttribute("name","两个蝴蝶飞ModelMap的model形式");
    //也可以用map的形式赋值
    //modelMap.put("name","两个蝴蝶飞ModelMap的map形式");
    return modelMap;
  }


用model的形式填充的话,


20190819174004332.png


用map的形式填充的话,将下面的那行代码去除注释,上面的添加注释


20190819174010975.png


六. 返回View 形式


返回的是 PDF,Excel 格式的内容。 暂不讲解。


##七. 返回String 类型 (最常用之一)


返回一个字符串。 其中这个字符串,可以单纯的指将要返回的视图名称,也可以是转发和重定向。 当然,设置的数据模型的形式也是多种多样。


常见的用 Model,ModelMap 和request 域,但是,不能用ModelAndView填充,会出错。


七.一 表示单纯的将要返回的视图名称


1 .request域或者是session 域 填充值。


@RequestMapping(value="/toLogin")
  public String toLogin(HttpServletRequest request){
    request.setAttribute("name","两个蝴蝶飞返回String的request设置值");
    return "user/login";
  }


20190819174019394.png


2 . Model 填充值


@RequestMapping(value="/toLogin")
  public String toLogin(Model model){
    model.addAttribute("name","两个蝴蝶飞返回String的model设置值");
    return "user/login";
  }


20190819174028568.png


3 .ModelMap 填充值


@RequestMapping(value="/toLogin")
  public String toLogin(ModelMap map){
    map.put("name","两个蝴蝶飞返回String的modelMap设置值");  //也可以用addAttribute
    return "user/login";
  }


20190819174035161.png


4 .ModelAndView 填充值,会展示不出数据。


@RequestMapping(value="/toLogin")
  public String toLogin(){
    ModelAndView model=new ModelAndView();
    model.addObject("name","两个蝴蝶飞返回String的modelAndView设置值");
    return "user/login";
  }


20190819174047290.png


前台展示,并不会展示出数据。


常常喜欢用Model 来进行填充值。


七.二 表示转发 (request域可以接收到) 用forward


  @RequestMapping(value="/toLogin")
  public String toLogin(HttpServletRequest request){
    request.setAttribute("name","两个蝴蝶飞返回String的转发设置值");
    return "forward:forwardLogin.action";  //forward 这个表示的是转发,注意路径。后面要加上.action
  }
  @RequestMapping(value="/forwardLogin")
  public String forwardLogin(HttpServletRequest request,Model model){
    System.out.println("获取值:"+request.getAttribute("name").toString());
    model.addAttribute("name",request.getAttribute("name").toString());
    return "user/login";  //这个就是单纯的返回视图名称。
  }


控制台打印输出:


20190819174056483.png


前台展示输出:


20190819174101271.png


注意观察地址栏,没有发现改变。 而且接收到了request域的内容。


转发时的路径, 如果是同一个Action 中的不同的方法,可以直接写路径,不用带/user 。


七.三 表示重定向 (request域接收不到) 用 redirect


@RequestMapping(value="/toLogin")
  public String toLogin(HttpServletRequest request){
    request.setAttribute("name","两个蝴蝶飞返回String的重定向设置值");
    return "redirect:forwardLogin.action";  //redirect 这个表示的是重定向,注意路径。后面要加上.action
  }
  @RequestMapping(value="/forwardLogin")
  public String forwardLogin(HttpServletRequest request,Model model){
    if(null==request.getAttribute("name")){
      model.addAttribute("name","两个蝴蝶飞返回String的重定向未获取request域值");
    }else{
      model.addAttribute("name",request.getAttribute("name").toString());
    }
    return "user/login";  //这个就是单纯的返回视图名称。
  }


前台展示输出


20190819174108979.png


重定向时,地址栏发生了改变,不能接收到request域的内容。


##八. 返回 void 类型 (最常用之一)


返回void 类型时,可以用Model 来设置值,那如何来设置视图名称呢?

相关文章
|
1月前
SpringMVC-5种类型参数传递
SpringMVC-5种类型参数传递
29 0
|
8月前
|
Java 测试技术 数据库
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
44 0
|
8月前
|
应用服务中间件 数据库
46SpringMVC - 参数绑定(绑定pojo类型)
46SpringMVC - 参数绑定(绑定pojo类型)
42 0
|
8月前
45SpringMVC - 参数绑定(绑定简单类型)
45SpringMVC - 参数绑定(绑定简单类型)
47 0
|
1月前
|
JSON 数据格式
SpringMVC-接收请求中的json数据及日期类型参数传递
SpringMVC-接收请求中的json数据及日期类型参数传递
69 0
|
1月前
|
前端开发 Java API
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
53 0
|
7月前
|
Java Spring
SpringMVC中请求传输的各种类型参数分析
SpringMVC中请求传输的各种类型参数分析
32 0
|
8月前
43SpringMVC - 参数绑定(默认支持的参数类型)
43SpringMVC - 参数绑定(默认支持的参数类型)
28 0
|
10月前
|
JSON 前端开发 Java
SpringMVC 方法三种类型返回值总结,你用过几种?
SpringMVC 方法三种类型返回值总结,你用过几种?
SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)
SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)
SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)