一.返回值分类:

  1. 字符串:返回值为需要展示的视图
  2. void:返回为默认的页面(方法名.jsp)
  3. ModleAndView:存储对象并返回设置的页面

1.字符串:

jsp:

<a href="/user/testString">response</a>

 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>success</title>
</head>
<body>
<h3>执行成功</h3> ${user.username}
${user.age}
</body>
</html>

控制器方法:

    /**
* 返回值为需要展示的视图
* @param model
* @return
*/
@RequestMapping("/testString")
public String testString(Model model){ System.out.println("testString执行了..."); //模拟从数据库中查询出User对象
User user = new User();
user.setUsername("美美");
user.setPassword("123");
user.setAge(30); //设置model对象
model.addAttribute("user",user); return "success";
}

2.void

jsp:

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

 <html>
<head>
<title>response</title>
</head>
<body> <a href="/user/testString">testString</a>
<a href="/user/testVoid">testVoid</a>
</body>
</html>

方法:

     /**
* void的返回值,会默认跳转到一个testVoid.jsp的页面下导致错误。
* 我们可以使用
* 1.请求转发:路径名为 "/WEB-INF/pages/success.jsp"
* 2.重定向:路径名为 request.getContextPath()+"/index.jsp"
* 注:
* forward:请求转发为服务器重定向,可以访问/WEB-INF中的jsp文件。
* redirect:客户端重定向,不可以访问/WEB-INF中的jsp文件,只能访问webapp中jsp
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/testVoid")
public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("testVoid执行了..."); //请求转发:可以访问/WEB-INF中的jsp文件。
//request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response); //重定向:不可以访问/WEB-INF中的jsp文件。
response.sendRedirect(request.getContextPath() + "/index.jsp"); //直接响应
//response.setCharacterEncoding("UTF-8");
//response.setContentType("text/html;charset=UTF-8"); //response.getWriter().println("hello"); return;
}

3.ModelAndView

jsp

<a href="/user/testModelAndView">testModelAndView</a>

方法:

     /**
* 返回ModelAndView设置的页面
* @return
*/
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView() { System.out.println("testModelAndView执行了..."); //创建ModelAndView对象
ModelAndView mv = new ModelAndView(); User user = new User();
user.setUsername("美美");
user.setPassword("123");
user.setAge(30); //将user放入ModelAndView对象中,同时也会将user对象放入request对象中
mv.addObject("user", user); //设置跳转界面
mv.setViewName("success"); return mv;
}

二.使用关键字进行请求转发或重定向

jsp:

 <a href="/user/testForwardOrRedirect">testForwardOrRedirect</a> <br>

方法:

     /**
* 使用关键字实现请求转发或重定向
* @return
*/
@RequestMapping("/testForwardOrRedirect")
public String testForwardOrRedirect() { System.out.println("testForwardOrRedirect执行了..."); // 请求转发
// return "forward:/WEB-INF/pages/success.jsp"; // 重定向
return "redirect:/index.jsp"; }

4.学习springmvc的响应数据和结果视图的更多相关文章

  1. SpringMvc响应数据和结果视图

    响应数据和结果视图 返回值分类 字符串 controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址. //指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB ...

  2. Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

    SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比 ...

  3. 5.学习springmvc响应json数据

    一.配置不过滤静态资源文件:用来访问webapp中js,css,images文件 1.修改springmvc.xml <!--配置前端控制器,用于设置哪些资源不拦截--> <mvc: ...

  4. springmvc学习笔记(18)-json数据交互

    springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...

  5. Java开发学习(二十六)----SpringMVC返回响应结果

    SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查 ...

  6. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  7. springmvc 怎么响应json数据

    springmvc 怎么响应json数据@Controller@RequestMapping("/items") class ItemsController{  @RequestM ...

  8. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  9. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

随机推荐

  1. 【题解】Sonya and Matrix Beauty [Codeforces1080E]

    [题解]Sonya and Matrix Beauty [Codeforces1080E] 传送门:\(Sonya\) \(and\) \(Matrix\) \(Beauty\) \([CF1080E ...

  2. ThreadLocal使用场景案例

    本篇是<ThreadLocal 那点事儿>的续集,如果您没看上一篇,就就有点亏了.如果您错过了这一篇,那亏得就更大了. 还是保持我一贯的 Style,用一个 Demo 来说话吧.用户提出一 ...

  3. 我的第一个netcore2.2 api项目搭建(三)续

    上一章快速陈述了自定义验证功能添加的过程,我的第一个netcore2.2 api项目搭建(三) 但是并没有真正的去实现,这一章将要实现验证功能的添加. 这一章实现目标三:jwt认证授权添加 在netc ...

  4. Throwable中几个常见方法。

    getMessage();//获取异常信息,返回字符串.例如: toString();//获取异常类名和异常信息,返回字符串.例如: printStackTrace();//获取异常类名和异常信息,以 ...

  5. maven项目整合SSM配置log4j, 实现控制台打印SQL语句

    在原有项目正常启动的情况下, 实现在控制台打印mapper包下SQL语句. 1.在pom.xml配置文件中添加两个依赖(缺一不可) <!--日志包--> <dependency> ...

  6. 22、vue实现随机四位数验证码

    效果图: 1.新建生成验证码的组件Sidentify.vue(代码如下): <template> <div class="s-canvas"> <ca ...

  7. SVM 实现多分类思路

    svm 是针对二分类问题, 如果要进行多分类, 无非就是多训练几个svm呗 OVR (one versus rest) 对于k个类别(k>2) 的情况, 训练k个svm, 其中, 第j个svm用 ...

  8. Django 之组合搜索

    现在很多网站都会有这样的组合搜索功能,其实质是几个模型之间组合对数据库进行查询,并将结果显示到页面上. 每一行都是一个模型,模型之间有着连表关系(一对多.多对多等) 模型设计 总共四个模型:分别为方向 ...

  9. HashMap中的putIfAbsent使用示例

    原文:https://blog.csdn.net/k3108001263/article/details/83720445 如果不存在key,则添加到HashMap中,跟put方法相似 如果存在key ...

  10. 四川第十届省赛 A.Angel Beats bitset

    四川第十届省赛 A.Angel Beats bitset 题目链接 题解参考:http://www.cnblogs.com/Aragaki/p/9142250.html 考虑用bitset来维护对于所 ...