结果跳转方式

1. ModelAndView

设置ModelAndView对象, 根据view的名称, 和视图解析器, 跳转到指定的页面

页面的路径: {视图解析器前缀} + viewName + {视图解析器后缀}

视图解析器

  1. <!--视图解析器-->
  2. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
  3. id="internalResourceViewResolver">
  4. <property name="prefix" value="/WEB-INF/jsp/"/>
  5. <property name="suffix" value=".jsp"/>
  6. </bean>

controller类

  1. package com.wang.controller;
  2. import org.springframework.web.servlet.ModelAndView;
  3. import org.springframework.web.servlet.mvc.Controller;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. //只要实现了Controller接口的类, 说明这就是一个控制器了
  7. public class ControllerTest1 implements Controller {
  8. @Override
  9. public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
  10. ModelAndView mv = new ModelAndView();
  11. //设置视图的属性
  12. mv.addObject("msg", "ControllerTest1");
  13. //设置跳转的页面
  14. mv.setViewName("test");
  15. return mv;
  16. }
  17. }

页面的路径: /WEB-INF/jsp/test.jsp

2. ServletAPI

在controller中可以使用response和request 因为SpringMVC本质也是一个servlet!

  1. package com.wang.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. @Controller
  7. public class ModelTest1 {
  8. @RequestMapping("/m1/t1")
  9. public String test(HttpServletRequest req, HttpServletResponse resp) {
  10. System.out.println(req.getSession().getId());
  11. return "hello";
  12. }
  13. }

3. SpringMVC实现

1. 无需视图解析器

先将Spring配置文件中的视图解析器去掉

  1. @Controller
  2. public class ResultSpringMVC {
  3.    @RequestMapping("/rsm/t1")
  4.    public String test1(){
  5.        //转发
  6.        return "/index.jsp";
  7.   }
  8.    @RequestMapping("/rsm/t2")
  9.    public String test2(){
  10.        //转发二
  11.        return "forward:/index.jsp";
  12.   }
  13.    @RequestMapping("/rsm/t3")
  14.    public String test3(){
  15.        //重定向
  16.        return "redirect:/index.jsp";
  17.   }
  18. }

此时要写页面的全限定名

2. 使用视图解析器

在Spring的配置文件中配置视图解析器, 注意路径的前缀与后缀

  1. @Controller
  2. public class ResultSpringMVC2 {
  3.    @RequestMapping("/rsm2/t1")
  4.    public String test1(){
  5.        //转发
  6.        return "test";
  7.   }
  8.    @RequestMapping("/rsm2/t2")
  9.    public String test2(){
  10.        //重定向
  11.        return "redirect:/index.jsp";
  12.        //return "redirect:hello.do"; //hello.do为另一个请求/
  13.   }
  14. }

SpringMVC-结果跳转方式的更多相关文章

  1. Springmvc的跳转方式

    跳转到其他controller: 返回类型是String: return "forward:/log/home.action";  映射路径 跳转到本类Controller的某一个 ...

  2. springMVC学习 六 跳转方式

    SpringMVC的controller中的方法执行完之后,默认的跳转方式是请求转发 如果想要修改跳转方式,可以设置返回值字符串内容(1) 添加 redirect:资源路径 重定向 "red ...

  3. SpringMVC 04: SpringMVC中4种页面跳转方式

    转发和重定向的页面跳转方式 页面跳转方式,本质上只有2种方式:转发 + 重定向 但在SpringMVC的具体实现上,转发可以细分为:普通的页面转发 + 经由action方法的页面转发 重定向可以细分为 ...

  4. SpringMVC 三种异常处理方式

    SpringMVC 三种异常处理方式 在 SpringMVC, SpringBoot 处理 web 请求时, 若遇到错误或者异常,返回给用户一个良好的错误信息比 Whitelabel Error Pa ...

  5. JSP页面跳转方式

    JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...

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

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

  7. ios中的界面跳转方式

    ios中,两种界面跳转方式 1.NavgationController本身可以作为普通ViewController的容器,它有装Controller的栈,所以可以push和pop它们,实现你所说的跳转 ...

  8. springMvc的注解注入方式

    springMvc的注解注入方式 最近在看springMvc的源码,看到了该框架的注入注解的部分觉的有点吃力,可能还是对注解的方面的知识还认识的不够深刻,所以特意去学习注解方面的知识.由于本人也是抱着 ...

  9. JS页面打开方式丶对话框及页面跳转方式

    一.js页面的三种打开方式 1. window.open 2. window.navigate("url") 跳转到目标页面 3. window.location.href=&qu ...

随机推荐

  1. linux常用命令(一)软件操作命令

    软件包管理器:yum 安装软件:yum install xxx 卸载软件:yum remove xxx 搜索软件:yum search xxx 清理缓存:yum clean packages 列出已安 ...

  2. SQL Server2017+SSIS+Python

    1.安装SQL Server2017 https://jingyan.baidu.com/article/76a7e409077997fc3a6e1559.html (1)JRE 7报错 只能安装JR ...

  3. 2、java数据类型转换

    当数据类型不一样时,将会发生数据类型转换. 1.自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成. 2. 规则:数据范围从小到大. System.out.println(1024); ...

  4. win10下使用AIDA64建立副屏监控

    写在前面: 最近刚攒了一台台式机,但是苦于没有太喜欢的温度监控插件,在贴吧里面看到有人用AIDA64做了一个副屏监控,感觉非常6,于是就开始了折腾之路. 需要的设备和软件: windows系统电脑一台 ...

  5. IOS 单例崩溃分析 2014-12-10 15:46:36

    单例模式是常用的模式,但是在单例应用中偶或引发崩溃让人匪夷所思.其实真的是单例引起的吗?未必.但是现象都指向了是单例引起的.今天我亲身经历了看似崩溃在单例上的一个例子,但实则不是,今天做个记录用于今后 ...

  6. 笔记:HTTP协议基础

    一.HTTP协议特点: 简单快速,请求方式有get.post.head 等8种 无连接无状态 支持模式有 B/S(浏览器) C/S(通过websocket去通信) URL,统一资源定位符,在网络中用来 ...

  7. Spring注解驱动开发03(按照条件注册bean)

    按照条件注册bean 使用@Conditional注解来控制bean的注册 使用步骤 先实现Condition接口,条件写在matches方法里 注意事项:Condition接口是org.spring ...

  8. springMVC入门(一)------springMVC基本概念与安装

    springMVC简介 springMVC是一个基于MVC的web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. springMVC安装 本例中使用 ...

  9. linux 使用 FIO 测试磁盘的iops

    原文链接:https://www.iteye.com/blog/elf8848-2168876 一,FIO安装wget http://brick.kernel.dk/snaps/fio-2.2.5.t ...

  10. SCAFFOLD: Stochastic Controlled Averaging for On-Device Federated Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. arXiv:1910.06378v1 [cs.LG] 14 Oct 2019 Abstr ...