引言
问题的引出,做微信开发,使用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通过将Web层设计成MVC(Model-View-Controller)模式,可以使得前后端代码分离,增强程序的可维护性和可扩展性。 首先,SpringMVC作为Spring框架的一部分,继承了Spring的诸多优点,例如依赖注入(DI)和...
SpringMVC提供了多种方式来实现重定向,包括使用@Controller注解、使用@RequestMapping注解、使用重定向视图等。 一、使用@Controller注解实现重定向 在SpringMVC中,可以使用@Controller注解来定义控制器类。在...
当一个HTTP请求到达服务器时,DispatcherServlet(前端控制器)会捕获该请求,然后通过HandlerMapping(处理器映射器)找到对应的处理器(Controller)。这个过程就涉及到URL映射。 URL映射规则在SpringMVC中主要...
在Spring MVC中,Controller类通常使用@Controller注解标识,并且可以包含多个处理请求的方法,这些方法通过@RequestMapping或其变体进行映射。 例如,假设我们有一个名为`UserController`的Controller类,我们可以...
在这个“springmvc 第二个例子”中,我们将探讨如何通过Spring MVC接收表单参数并执行重定向。 首先,让我们理解接收表单参数的过程。在Web应用中,用户通常通过HTML表单提交数据。Spring MVC提供了一个强大的机制...
在这个名为 "springmvc_controller_01" 的资源包中,我们很可能会找到关于如何配置和使用 Spring MVC 中的 Controller 的相关信息。下面我们将深入探讨 Spring MVC Controller 的核心概念、配置以及它在实际应用中的...
SpringMVC Controller 介绍及常用注解 SpringMVC Controller 是 Spring 框架中的一个核心组件,负责处理由 DispatcherServlet 分发的请求,封装业务处理层处理后的数据成一个 Model,然后返回给对应的 View 进行...
- `Controller`类:实现四种映射方式的控制器方法。 - `Interceptor`类:自定义的拦截器实现,包含预处理、后处理和完成处理的方法。 - `DispatcherServlet`配置:定义了SpringMVC的前端控制器,配置了拦截器和...
在SpringMVC中,我们使用`@Controller`注解来标识一个类作为控制器。例如,你可以创建一个名为`HelloController`的类,并添加`@RequestMapping`注解来处理特定的URL请求。如下所示: ```java @Controller public...
在非注解Controller中,URL映射通常是通过`<bean>`标签在Spring配置文件中完成的。例如: ```xml ``` 这里的`/myPath`是请求URL的一部分,`MyNonAnnotatedController`则是对应的Controller类。 虽然非注解...
"springmvc_controller_02"可能是一个关于深入理解Spring MVC控制器的教程或者示例代码包。让我们详细探讨Spring MVC Controller的相关知识点。 1. **Controller接口与注解** Spring MVC提供了`Controller`接口,...
Springmvc Controller接口代码示例 Springmvc Controller接口代码示例是Spring MVC框架中的一部分,主要负责处理用户请求并返回响应结果。Controller接口是 Spring MVC 中的核心组件之一,负责接收用户请求,处理...
在这里,我们使用了`@Controller`注解来标记Controller类,并使用`@RequestMapping`注解来映射请求URL。 2. ajax请求的工作原理:ajax(Asynchronous JavaScript and XML)是一种异步请求技术,允许Web页面在不刷新...
- **处理器映射(Handler Mapping)**:Spring MVC 使用 HandlerMapping 来识别哪个 Controller 类和方法应该处理特定的请求。可以通过注解如 `@RequestMapping` 或其变体(如 `@GetMapping`, `@PostMapping` 等)来...
SSM框架是由Spring、SpringMVC和MyBatis三个组件组成的Java Web开发框架。这个非Maven项目的源代码提供了一个详尽的入门示例,帮助开发者理解如何在没有Maven依赖管理的情况下集成这三个组件。 首先,Spring是核心...
在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们分别是用于构建Web应用程序和对象关系映射(ORM)的工具。在这个“springmvc+hibernate多表映射”的主题中,我们将深入探讨如何在SpringMVC项目中集成...
`@Controller`注解: 在Java类上使用`@Controller`注解表示该类是一个处理HTTP请求的控制器。这个注解将类声明为Spring MVC中的一个组件,使得Spring容器能够识别并管理它。当Spring MVC接收到一个HTTP请求时,它会...
在本课程"跟开涛学SpringMVC(4.6)Controller接"中,我们将深入探讨SpringMVC框架中的Controller接口控制器。这个部分是SpringMVC核心组件之一,用于处理HTTP请求并返回响应。Controller接口提供了将用户请求映射到...
在本篇博文中,我们将深入探讨SpringMVC框架中的向导型Controller的实现,这是SpringMVC 3.1.1版本的一个重要特性。向导型Controller通常用于处理多步骤的用户交互流程,如购物车结账、用户注册等,它能够引导用户...