首页 > 其他分享 >springMvc页面跳转---重定向和转发

springMvc页面跳转---重定向和转发

时间:2023-09-19 17:35:13浏览次数:37  
标签:return 重定向 springMvc --- 地址 jsp 跳转 forward public

准备工作

1.导入json依赖
点击查看代码
 <!-- jsp需要依赖! jstl-->
        <dependency>
            <groupId>jakarta.servlet.jsp.jstl</groupId>
            <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
            <version>3.0.0</version>
        </dependency>
2.声明配置类
点击查看代码

@Configuration
@ComponentScan("com.wind")
@EnableWebMvc
//WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
public class MvcConfig implements WebMvcConfigurer {

    @Override  //配置jsp对应的视图解析器
    public void configureViewResolvers(ViewResolverRegistry registry) {
        //快速 添加 网页 的 前后缀
        registry.jsp("/WEB-INF/views/", ".jsp");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
//        开启静态资源查找
        configurer.enable();
    }

    //添加拦截器 将拦截器加到ioc容器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //TODO:传入 拦截器对象    该方式 拦截全部请求
//        registry.addInterceptor(new MyInterceptor());
        //TODO:设置 拦截指定地址  *  任意一层字符串   ** 任意多层字符串
        //registry.addInterceptor(new MyInterceptor()).addPathPatterns("/test/e1");
        //error下的任意方法
        //registry.addInterceptor(new MyInterceptor()).addPathPatterns("/test/**");
        //TODO:排除部分拦截 排除的地址应该在拦截地址内部!
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/test/**")
                .excludePathPatterns("/test/e2");

    }
}
3.ioc容器初始化
点击查看代码
public class SpringMvcInit extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{MvcConfig.class};
    }

    @Override //dispatcherServlet拦截地址
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

目录结构

转发与重定向

@RequestMapping("view")
@Controller
public class JspController {

    /**
     * 快速查找视图
     * 1.方法的返回值是字符串
     * 返回值为 网页名字即可  前后缀在配置类已经写好
     */
    @RequestMapping("jsp")
    public String html(ModelMap model, HttpServletRequest request) {
//        设置共享域
        model.addAttribute("data", "123456");
        request.setAttribute("data1", "22222");
        return "index";  //跳转到 index.jsp
    }

    /**
     *  路径细节:【不使用springmvc, request response】
     *     转发是项目下的资源跳转。路径: 项目下的地址  /view/jsp 忽略 tomcat中设置的 applicationContext
     *     重定向项目下的资源可以是项目外的地址  重定向属于二次请求  路径: 项目下的地址 全地址 /springmvc/view/jsp 不忽略 tomcat中设置的 applicationContext
     *  使用springmvc路径语法:
     *     "forward: 路径 | redirect: 路径 "  重定向,资源的地址也不需要写项目的根路径! /view/jsp
     *     转发和重定向的地址都一样了! 直接写 /view/jsp  由springmvc转化成 - >  /springmvc/view/jsp
     */

    /**
     * 转发:只能是项目下的资源
     * 1.方法的返回值写成字符串
     * 2.返回的字符串前 forward: /转发地址
     */
    @RequestMapping("forward")//请求转发
    public String forward(ModelMap model, HttpServletRequest request) {
//       请求转发到其他页面
//        return "forward:/WEB-INF/views/2.jsp";
//        请求转发到其他控制器
        return "forward:jsp";
//      return "forward:/view/jsp";
        /*
        forward关键字,一旦添加了forward关键字,
        控制器方法返回的视图名称就不会再与视图解析器中的前辍与后辍进行拼接,
        所以必须写出相对于项目根的完整路径才能返回正确的视图          */
    }

    /**
     * 重定向:
     * 1.方法返回值写成字符串类型
     * 2.返回字符串前面 redirect: /重定向的地址
     */
    @RequestMapping("redirect")//请求重定向
    public String redirect(ModelMap model, HttpServletRequest request) {
//        请求重定向到其他控制器
//        return "redirect:/view/jsp";(建议 地址写完善一些 方便后期观看)
        return "redirect:jsp";
    }
}

标签:return,重定向,springMvc,---,地址,jsp,跳转,forward,public
From: https://www.cnblogs.com/weifengfuxiufa/p/17715227.html

相关文章

  • 第二章 线性表-单链表
    线性表2.5.1单链表的定义和表示存储结构(物理位置)可以不连续。(非顺序映像/链式映像)typedefstructLNode{ ElemTypedata;//数据域 structLNode*next;//指针域}LNode,*LinkList;//(同一结构体指针类型起了两个名称)//LinkList是指向结构体LNode的指针类型//如......
  • vue-计算属性、监听属性、生命周期钩子函数
    计算属性1.计算属性是基于他们的依赖变量进行缓存的2.计算属性只有在它相关依赖变量发生改变时才会重新求值,否则不会变(函数只要页面变化,就会重新运算)3.计算属性就像python中的property,可以把方法/函数伪装成属性4.计算属性,必须有返回值 实现输入input中后名字首字母大写......
  • 【HarmonyOS】元服务卡片router实现跳转到指定页面
    ​【关键字】元服务卡片、router跳转不同页面 【写在前面】本篇文章主要介绍开发元服务卡片时,如何实现从卡片中点击事件跳转到指定的应用内页面功能。此处以JSUI开发服务卡片为例,JS卡片支持组件设置action,包括router事件和message事件,其中router事件用于应用跳转,message事件......
  • 用jenkins构建HBuilder创建uni-app项目打包成H5发版
    此文章可以打包h5,但缺少index.css引用。1、用HBuilderX工具创建uni-app项目选择默认模板 生成项目名为:my-project 2、在linux环境下在安装好node 和npm 前提下(去官网:https://nodejs.org/en/download 下载:node-v14.18.1-linux-x64.tar.xz 或wgethttps://nodejs.or......
  • AutoCAD Electrical下载-AutoCAD Electrical下载 各版本下载
    软件支持中文,增加了很多新功能,帮助用户轻松设计图纸,大大提高效率,节省工作时间,autocadelectrical是一款专业的电气控制软件,除了具有autocad的全部功能之外,还具有创建原理图,导线编号,生成物料清单等适用于电气制图的功能。具有实时错误检查功能,使电气设计团队与机械设计团队能够通过使......
  • Dynaform中文版下载-Dynaform中文版下载 各个版本下载
    dynaform包含三个主要模块:BSE、DFE和塑性。这些模块几乎涵盖了冲压模具表面设计的每一个元素,包括最佳冲压方向、毛坯设计、工艺补充表面设计、拉深筋设计、冲头和模具圆角。设计、冲压速度设置、压边力设计、摩擦系数、切向解、普雷斯顿数等。软件可用于各种领域,包括汽车、航空航......
  • eviews安装包-eviews中文版-eviews软件下载 各个版本下载
    Eviews官方安装版是一款很优秀的预测分析计量软件,Eviews不仅能够对用户的数据进行更好的对数据进行分析操作,而且还可以对联立方程进行线性和非线性的估计,有需要的朋友快来下载吧。软件地址:看置顶贴Eviews12软件新功能图形&表格[gf]2022[/gf]定义滑块控件让您能交互地为图形更改可......
  • MURD560-ASEMI超快恢复二极管MURD560
    编辑:llMURD560-ASEMI超快恢复二极管MURD560型号:MURD560品牌:ASEMI封装:TO-252正向电流:5A反向电压:600V引线数量:3芯片个数:1芯片尺寸:74MIL漏电流:10ua恢复时间:35ns浪涌电流:150mA芯片材质:正向电压:1.0V封装尺寸:如图特性:贴片超快恢复二极管工作结温:-55℃~150℃包装方式:50......
  • 分析开发板信息中为啥df -h显示sda11分区挂载只有2GB Size且使用100%,但fdisk -l sda11
    问题点当使用开发板中的存储设备分区,进而格式化挂载到某个目录上后,使用df&lsblk后发现分区挂载情况和实际的存储器分区信息有差异后,会感到很疑惑,下面介绍遇到的情况:情况1使用xml添加分区后发现对应分区格式化&挂载对应设置的系统目录上但分区sizeAvailablesize&Used之和不相......
  • HarmonyOS 管理页面跳转及浏览记录导航
     历史记录导航使用者在前端页面点击网页中的链接时,Web组件默认会自动打开并加载目标网址。当前端页面替换为新的加载链接时,会自动记录已经访问的网页地址。可以通过forward()和backward()接口向前/向后浏览上一个/下一个历史记录。在下面的示例中,点击应用的按钮来触发前端页......