java - 如何使用 Spring MVC 获取所有文件名?

标签 java spring file api model-view-controller

我有一个将文件名发送到 API 的按钮,但 API 只获取文件名(不包括扩展名)。我如何获得延期?

JS

<button class="upl-btn" data-url="validacao/upload/planilha/55163343b0df070bbc66e1bb6e0c3f9b.xlsx" data-type="DELETE">
<span>Apagar</span>
</button> 

API

@RestController
@RequestMapping("/validacao/upload/planilha")
@Api(hidden = true, value = "/planilha", description = "API para envio de planilhas para validação")
public class UploadPlanilhaAPI {
    @RequestMapping(value = "/{name}",  method=RequestMethod.DELETE)
        public Response deleteFile(@PathVariable("name")String name){
            HttpSession session = activeUser.getSession();
            String path = (String) session.getAttribute("dir");
            uploadPlanilhaService.deletePlanilha(path, name);
            session.removeAttribute("json");
            session.removeAttribute("ignored");
            session.setAttribute("lastuploaddate", Util.now());
            return Response.ok().build();
        }
}

结果是name = 55163343b0df070bbc66e1bb6e0c3f9b,我想要name = 55163343b0df070bbc66e1bb6e0c3f9b.xlsx

最佳答案

您遇到了 Spring 的可选后缀功能。默认情况下,Spring 允许您声明 /myPage 请求映射。现在,它允许您调用 /myPage.jsp/myPage.json,Spring 会将响应转换为所需的类型。他们默认打开它,这很烦人;特别是如果您的 URL 的最后部分是路径变量:它最终会修剪掉最后的 . 部分,因为它认为您正在尝试使用此功能。

如果您对此功能不感兴趣,可以将其关闭。

在您的 servlet xml 文件中,添加此路径匹配设置:

<mvc:annotation-driven>
    <mvc:path-matching registered-suffixes-only="true"/>
</mvc:annotation-driven>

这里的替代解决方案: Spring MVC @PathVariable with dot (.) is getting truncated

关于java - 如何使用 Spring MVC 获取所有文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349252/

相关文章:

java - pentaho 5.2 中获取 olap4j 连接时出现异常

Java:将配置变量存储在文件中

ios - 分发应用程序时将文本文件放在哪里?

Java Swing : Show pressed button when using corresponding keyboard button

java - IntelliJ 建议用 for each 循环替换 while 循环。为什么?

java - 使用 JRadioButton 进行 Tab 排序

spring - Spring Session 如何在单个浏览器中支持多个 session ?

java - Spring Boot——根据操作系统自动激活profile

python 将列表写入文件

java - 为什么反射 api 在测试用例中不起作用