`

SpringMVC的Controller如何重定向非Controller映射地址(外部地址)

阅读更多
引言
  问题的引出,做微信开发,使用SpringMVC内置的文件下载方法,怎么也无法下载文件,总是提示“文件无法下载”。没有办法,只好在服务端生成文件,然后直接重定向到该文件。虽然不好、不安全,但解决了微信中无法下载文件的问题。

方法
  代码很简单,就是一个简单的要了解的知识点。RedirectView类。
@RequestMapping("/download")
public ModelAndView download(){
	String shortName = "下载文件.xls";
	try {
		shortName = URLEncoder.encode(shortName,"UTF-8");
	} catch (UnsupportedEncodingException e) {
		e.printStackTrace();
	}
	String url = "../downloadPath/"+shortName;
	ModelAndView downloadView = new ModelAndView(new RedirectView(url));
	return downloadView;
}


  如果重定向的文件名中有中文,需要使用URLEncoder.encode()函数进行编码,不然会提示无法找到文件。
  RedirectView有个参数:encodingScheme,似乎可以达到同样的效果(我没有试验,大致看了一下源码,觉得似乎可以)。可以使用set方法设置一下,就不用自己转码了。

分享到:
评论

相关推荐

    SpringMVC controller

    SpringMVC通过将Web层设计成MVC(Model-View-Controller)模式,可以使得前后端代码分离,增强程序的可维护性和可扩展性。 首先,SpringMVC作为Spring框架的一部分,继承了Spring的诸多优点,例如依赖注入(DI)和...

    springmvc重定向实现方法解析

    SpringMVC提供了多种方式来实现重定向,包括使用@Controller注解、使用@RequestMapping注解、使用重定向视图等。 一、使用@Controller注解实现重定向 在SpringMVC中,可以使用@Controller注解来定义控制器类。在...

    SpringMVC入门很简单之URL映射规则

    当一个HTTP请求到达服务器时,DispatcherServlet(前端控制器)会捕获该请求,然后通过HandlerMapping(处理器映射器)找到对应的处理器(Controller)。这个过程就涉及到URL映射。 URL映射规则在SpringMVC中主要...

    SpringMVC中一个Controller多个方法

    在Spring MVC中,Controller类通常使用@Controller注解标识,并且可以包含多个处理请求的方法,这些方法通过@RequestMapping或其变体进行映射。 例如,假设我们有一个名为`UserController`的Controller类,我们可以...

    springmvc 第二个例子(接收表单参数+重定向)

    在这个“springmvc 第二个例子”中,我们将探讨如何通过Spring MVC接收表单参数并执行重定向。 首先,让我们理解接收表单参数的过程。在Web应用中,用户通常通过HTML表单提交数据。Spring MVC提供了一个强大的机制...

    springmvc_controller_01

    在这个名为 "springmvc_controller_01" 的资源包中,我们很可能会找到关于如何配置和使用 Spring MVC 中的 Controller 的相关信息。下面我们将深入探讨 Spring MVC Controller 的核心概念、配置以及它在实际应用中的...

    详解SpringMVC Controller介绍及常用注解

    SpringMVC Controller 介绍及常用注解 SpringMVC Controller 是 Spring 框架中的一个核心组件,负责处理由 DispatcherServlet 分发的请求,封装业务处理层处理后的数据成一个 Model,然后返回给对应的 View 进行...

    SpringMVC四种映射方式实例代码

    - `Controller`类:实现四种映射方式的控制器方法。 - `Interceptor`类:自定义的拦截器实现,包含预处理、后处理和完成处理的方法。 - `DispatcherServlet`配置:定义了SpringMVC的前端控制器,配置了拦截器和...

    springMVC基本配置(Controller+Service+Dao)

    在SpringMVC中,我们使用`@Controller`注解来标识一个类作为控制器。例如,你可以创建一个名为`HelloController`的类,并添加`@RequestMapping`注解来处理特定的URL请求。如下所示: ```java @Controller public...

    springmvc非注解controller控制器

    在非注解Controller中,URL映射通常是通过`<bean>`标签在Spring配置文件中完成的。例如: ```xml ``` 这里的`/myPath`是请求URL的一部分,`MyNonAnnotatedController`则是对应的Controller类。 虽然非注解...

    springmvc_controller_02

    "springmvc_controller_02"可能是一个关于深入理解Spring MVC控制器的教程或者示例代码包。让我们详细探讨Spring MVC Controller的相关知识点。 1. **Controller接口与注解** Spring MVC提供了`Controller`接口,...

    Springmvc Controller接口代码示例

    Springmvc Controller接口代码示例 Springmvc Controller接口代码示例是Spring MVC框架中的一部分,主要负责处理用户请求并返回响应结果。Controller接口是 Spring MVC 中的核心组件之一,负责接收用户请求,处理...

    SpringMVC Controller解析ajax参数过程详解

    在这里,我们使用了`@Controller`注解来标记Controller类,并使用`@RequestMapping`注解来映射请求URL。 2. ajax请求的工作原理:ajax(Asynchronous JavaScript and XML)是一种异步请求技术,允许Web页面在不刷新...

    springmvc_controller_03

    - **处理器映射(Handler Mapping)**:Spring MVC 使用 HandlerMapping 来识别哪个 Controller 类和方法应该处理特定的请求。可以通过注解如 `@RequestMapping` 或其变体(如 `@GetMapping`, `@PostMapping` 等)来...

    SSM spring + springMVC +myBatis 非maven 源代码

    SSM框架是由Spring、SpringMVC和MyBatis三个组件组成的Java Web开发框架。这个非Maven项目的源代码提供了一个详尽的入门示例,帮助开发者理解如何在没有Maven依赖管理的情况下集成这三个组件。 首先,Spring是核心...

    springmvc+hibernate多表映射

    在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们分别是用于构建Web应用程序和对象关系映射(ORM)的工具。在这个“springmvc+hibernate多表映射”的主题中,我们将深入探讨如何在SpringMVC项目中集成...

    模拟springMVC跳转源码

    `@Controller`注解: 在Java类上使用`@Controller`注解表示该类是一个处理HTTP请求的控制器。这个注解将类声明为Spring MVC中的一个组件,使得Spring容器能够识别并管理它。当Spring MVC接收到一个HTTP请求时,它会...

    跟开涛学SpringMVC(4.6)Controller接

    在本课程"跟开涛学SpringMVC(4.6)Controller接"中,我们将深入探讨SpringMVC框架中的Controller接口控制器。这个部分是SpringMVC核心组件之一,用于处理HTTP请求并返回响应。Controller接口提供了将用户请求映射到...

    SpringMVC杂记(三) 向导型Controller的实现(基于SpringMVC 3.1.1)

    在本篇博文中,我们将深入探讨SpringMVC框架中的向导型Controller的实现,这是SpringMVC 3.1.1版本的一个重要特性。向导型Controller通常用于处理多步骤的用户交互流程,如购物车结账、用户注册等,它能够引导用户...

Global site tag (gtag.js) - Google Analytics