SpringMVC中转发和重定向
在SpringMVC中正常的页面转发是通过视图解析器的,视图解析器对view的名字进行拼接,加上前缀和后缀
<!-- 视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀匹配--><property name="prefix" value="/WEB-INF/jsp/"/><!-- 后缀匹配--><property name="suffix" value=".jsp"/></bean>
对应的Controller类
@Controller
public class ControllerTest3 {@RequestMapping("/hello1")public String test1(Model model) {model.addAttribute("msg", "Test1");return "test";}
}
下面我们来演示通过SpringMVC实现页面的转发和重定向,而不用视图解析器,这里给出修改过的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 自动扫描指定的包,该包下面的所有注解类交给IoC容器管理--><context:component-scan base-package="com.zhiying.controller"/><!-- 视图解析器-->
<!-- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
<!-- <!– 前缀匹配–>-->
<!-- <property name="prefix" value="/WEB-INF/jsp/"/>-->
<!-- <!– 后缀匹配–>-->
<!-- <property name="suffix" value=".jsp"/>-->
<!-- </bean>-->
<!-- <bean id="/hello" class="com.zhiying.controller.ControllerTest1"/>--></beans>
来一个Controller控制器类
package com.zhiying.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ResultSpringMVC {@RequestMapping("/t1")public String test1(Model model) {//转发(默认的)model.addAttribute("msg","test1");return "/WEB-INF/jsp/test.jsp";}@RequestMapping("/t2")public String test2(Model model) {//转发 (forward)model.addAttribute("msg","test2");return "forward:/WEB-INF/jsp/test.jsp";}@RequestMapping("/t3")public String test3(Model model) {//重定向 (redirect)model.addAttribute("msg","test3");return "redirect:/index.jsp";}
}
还有一个web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 配置DispatchServlet,其本质是一个Servlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
最后是jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
${msg}
</body>
</html>
这样可以得到
如果我们加上视图解析器,那么转发只需要return要转发的名字即可,如果要重定向,则需要写上redirect:+要转发的全路径
这里我们在web下建一个aa的包,该包下写一个aa.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>$Title$</title>
</head>
<body>
hello
</body>
</html>
然后把Controller类改为如下,即是在有视图解析器的情况下
package com.zhiying.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ResultSpringMVC {@RequestMapping("/t1")public String test1(Model model) {//转发(默认的)model.addAttribute("msg","test1");return "test";}@RequestMapping("/t2")public String test2(Model model) {//重定向 (redirect)model.addAttribute("msg","test3");return "redirect:aa/aa.jsp";}
}
SpringMVC中转发和重定向相关推荐
- 141 springmvc中 转发 与 重定向
2019独角兽企业重金招聘Python工程师标准>>> 1.效果 这里以修改为demo 1.1 重定向(不推荐) return "redirect:manageDepart ...
- SpringMVC(二)——转发和重定向、处理前端请求的数据(普通字符串/对象)
文章目录 1. 转发和重定向 2. 处理前端请求的数据 2.1 普通字符串 2.2 对象 1. 转发和重定向 转发:url不会发生变化 (查询前端固定模板的数据) @RequestMapping(&q ...
- SpringMVC之——转发与重定向
与视图解析器的关系 有视图解析器时转发和重定向都可以成功, 无视图解析器时转发需要补全路径才能成功,重定向不能访问WEB-INF下的页面(如图中的test.jsp) 视图解析器配置在web.xml中绑 ...
- #SpringMVC:转发、重定向(关键字方式) #forward、redirect关键字 @FDDLC
示例: 关于在SpringMVC中使用forward.redirect关键字的说明: 1.这两种方式都不经过视图解析器,因此需要自己加前后缀. 2.[SpringMVC中使用关键字的重定向]和[传统的 ...
- 解决问题:SpringMvc中转发的html文件中文是乱码
目录 1.环境说明,以及前言 2.问题描述: 3.失败的方法(这里写失败并不代表在其他情况不管用) 3.1 html网页本身编码不是UTF-8(推荐尝试) 3.2 web.xml中没有设置配置编码方式 ...
- Servlet中转发和重定向的路径问题以及表单提交路径问题
一.请求转发与响应重定向的种类 有两种方式获得Servlet 转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher( ...
- SpringMVC核心技术---转发和重定向
@Controller public class Mycontroller {//转发@RequestMapping("/adduser")public String add(Ht ...
- 【SpringMVC】Servlet转发和重定向的区别
1. 概述 转发和重定向是Servlet中进行页面跳转的两种方式,下图展示了其工作原理,左图为转发,右图为重定向. 从上图可以看出,二者最大的区别就是:转发是在服务器内部进行的,只有一次请求响应:而重 ...
- springmvc java中转发_Springmvc中的转发重定向和拦截器的示例
本文介绍了Springmvc中的转发重定向和拦截器的示例,分享给大家,具体如下: 可变参数在设计方法时,使用 数据类型...来声明参数类型,例如: public static void functio ...
最新文章
- 技嘉主板bios设置键盘不能用_BIOS不再硬梆梆、全新技嘉主板BIOS设置就算不是玩家也能轻松搞定...
- python能做什么游戏ll-是Python的语法LL(1)吗?
- 电子产品设计流程_产品设计“学习、就业、留学”全攻略
- Asp.Net Core 2.1+的视图缓存(响应缓存)
- 2019-03-09-算法-进化(买卖股票的最佳时机 II)
- java 生成校验验证码_java生成验证码并进行验证
- //监测网络状态(AFNetworking) 服务端 客户端
- 组件和高阶组件区别_为什么要对高阶组件使用代码拆分
- win10搭建java开发环境_如何在WIN10搭建Java开发环境
- ajax简单校验用户名是否存在
- Spring事务总结(一) 内部调用事务失效、异常回滚
- typescript map转对象_TypeScript 快速上手及学习笔记 - JoeYoung
- VS 2010 for SharePoint
- java 既不是内部命令也不是外部命令的解决办法
- 4款idea主题,非常的炫酷
- My Fifteenth Page - 快乐数 - By Nicolas
- 带有鸿蒙logo的壁纸,鸿蒙OS Logo曝光
- Streamset数据同步报错问题
- 经典算法 之 子数组换位问题
- 【python牛客刷题】——深度学习第一弹
热门文章
- 知识图谱-远程监督关系提取
- laravel sql多个orWhere条件时数据查询错误
- [manacher] hdu 3294 Girls#39; research
- [摘记]数值方法12——常微分方程组的积分
- 北京西格玛大厦微软社区精英 Visual Studio 2010 技术交流会记录
- 实现一个简单的HTTP
- JMeter中使用“用户自定义变量”实现参数化
- html中的数字选框,带有复选框和数字类型的HTML表单提交与PHP?
- ih5怎么切换下一个页面_区块链是下一个风口?那PPT该怎么做?
- 学习前端开发,自学真的能成功?