SpringMVC的返回值类型(六)上

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

一.SpringMVC的方法返回值


SpringMVC 的方法返回值有多种, ModelAndView, Model,ModelMap,Map,View, String, void , 但是常用的,只有3个,ModelAndView,void 和String. 这里,详细的介绍一下。


下面讲解一下,跳转方法返回值类型


二 返回ModelAndView 对象。 (最常用的之一)


ModelAndView, 实际上就是 Model 模型和View 视图, 将数据模型和返回视图放置在一个类里面。


public class ModelAndView
{
    private Object view;  //视图
  private ModelMap model; //数据
  private boolean cleared = false;
}


20190809103015556.png


二.一 后台处理:


@RequestMapping(value="/toLogin")
  public ModelAndView toLogin(){
    //放置对象还可以放其他的类型,下面会重点讲解。这里先只返回简单的字符串。
    ModelAndView model=new ModelAndView();
    //添加数据
    model.addObject("name","两个蝴蝶飞ModelAndView形式"); 
    //设置视图
    model.setViewName("user/login");
    return model;
  }


ModelAndView ,利用 addObject() 来放置数据, 利用setViewName() 来设置要跳转的视图的名称。 这是是最常用的。


二.二 前端视图展示。 (接下来的视图展示也是用这个代码)


<body>
  <h3>${name}欢迎你来到这个页面</h3>
</body>


运行之后,前端展示


2019081917363782.png


常看见,将ModelAndView 放置在方法的参数里面,这样也是可行的。 不用再次实例化了。


@RequestMapping(value="/toLogin")
  public ModelAndView toLogin(ModelAndView model){
    //放置对象还可以放其他的类型,下面会重点讲解。这里先只返回简单的字符串。
    //添加数据
    model.addObject("name","两个蝴蝶飞ModelAndView形式"); 
    //设置视图
    model.setViewName("user/login");
    return model;
  }


其实,SpringMVC的方法参数里面可以放置很多对象,如ModelAndView,Model ,HttpServletRequest 等。 会专门收集讲一下的。


##三. 返回Model 类型


返回的是Model,数据模型,可以填充数据了, 那么如何指定要跳转到哪儿呢,即指定视图名。 猜想,可以在方法名或者是访问路径url上做文章。是在url 上进行的。 可以验证一下。


三.一 Model接口


Model 是一个接口,故最好放置在方法参数里面,而不是进行手动的实例化。


package org.springframework.ui;
import java.util.Collection;
import java.util.Map;
public abstract interface Model
{
  public abstract Model addAttribute(String paramString, Object paramObject);
  public abstract Model addAttribute(Object paramObject);
  public abstract Model addAllAttributes(Collection<?> paramCollection);
  public abstract Model addAllAttributes(Map<String, ?> paramMap);
  public abstract Model mergeAttributes(Map<String, ?> paramMap);
  public abstract boolean containsAttribute(String paramString);
  public abstract Map<String, Object> asMap();
}


三.二 URL 形式的后台指定跳转视图名


@RequestMapping(value="/login")
public Model login(Model model){
  model.addAttribute("name","两个蝴蝶飞Model形式");
  return model;
}


前台传入的路径url 是login,那么就会跳转到login.jsp 页面。


20190819173942333.png


三.三 将URL 与方法名设置不一致,主要是将url 进行改变,看跳转到哪一个页面。


  @RequestMapping(value="/toLogin")
  public Model login(Model model){
    model.addAttribute("name","两个蝴蝶飞Model形式");
    return model;
  }


运行服务器, 进行访问之后,会报404错误,说要跳转到toLogin.jsp(url控制),而不是login.jsp(方法名控制).


20190819173747814.png


这样,就需要将url 访问路径与页面的视图名称保持一致,不太友好。

相关文章
|
6月前
SpringMVC-5种类型参数传递
SpringMVC-5种类型参数传递
51 0
|
Java 测试技术 数据库
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
60 0
|
应用服务中间件 数据库
46SpringMVC - 参数绑定(绑定pojo类型)
46SpringMVC - 参数绑定(绑定pojo类型)
74 0
45SpringMVC - 参数绑定(绑定简单类型)
45SpringMVC - 参数绑定(绑定简单类型)
59 0
|
6月前
|
JSON 数据格式
SpringMVC-接收请求中的json数据及日期类型参数传递
SpringMVC-接收请求中的json数据及日期类型参数传递
143 0
|
6月前
|
前端开发 Java API
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
76 0
|
3月前
|
前端开发 Java Spring
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
这篇文章通过示例代码展示了如何在Spring MVC中编写和注册拦截器,以及如何在拦截器的不同阶段添加业务逻辑。
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
|
Java Spring
SpringMVC中请求传输的各种类型参数分析
SpringMVC中请求传输的各种类型参数分析
56 0
43SpringMVC - 参数绑定(默认支持的参数类型)
43SpringMVC - 参数绑定(默认支持的参数类型)
52 0
|
JSON 前端开发 Java
SpringMVC 方法三种类型返回值总结,你用过几种?
SpringMVC 方法三种类型返回值总结,你用过几种?