HTML多加了个空格导致Spring找不到PostMapping

本文详细记录了由于HTML中多加了一个空格,导致Spring MVC无法找到匹配的PostMapping控制器的问题。作者通过分析报错代码,重现错误,并深入探讨了原因,最后提供了解决方案。

报错代码

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Get infos</title>
</head>
<body>
    <form action="/test" method="post" enctype="multipart/form-data ">
        <input type="file" name="file"/>
        <input type="text" name="imageName"/>
        <input type="submit"/>
    </form>
</body>
</html>

Controller

@PostMapping(path = "/test", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public EntityInfo createNewEntityWithImage(@RequestParam String imageName, @RequestParam("file") MultipartFile file) throws IOException {
        try (InputStream inputFileData = file.getInputStream()) {
            System.out.println("createNewEntityWithImage");
            DbEntityInfo info = imagesSvc.putNew(imageName, file.getOriginalFilename(), inputFileData);
            return mapItem(info);
        }
 
在代码中,如果你发现有余的空格(比如行尾空格余的缩进、字符串中的空格等),可以根据不同的场景使用不同的方法来删除这些余的空格。 --- ## ✅ 1. 删除字符串中的空格(JavaScript 示例) ### 方法一:使用 `trim()` 删除字符串首尾空格 ```js const str = " Hello, world! "; const trimmedStr = str.trim(); console.log(trimmedStr); // 输出: "Hello, world!" ``` ### 方法二:使用 `replace()` 删除所有空格(包括中间) ```js const str = " Hello world! "; const noSpaces = str.replace(/\s+/g, ' ').trim(); console.log(noSpaces); // 输出: "Hello world!" ``` --- ## ✅ 2. 删除行尾空格(适用于大数编辑器,如 VS Code / IDEA) ### 在 IntelliJ IDEA / VS Code 中: - **VS Code**: 可以安装插件如 **"Trim Trailing Whitespace"** 或使用快捷键 `Ctrl + Shift + P` 输入 `Trim Trailing Whitespace`。 - **手动设置自动删除行尾空格(VS Code)**: 在 `settings.json` 中添: ```json { "files.trimTrailingWhitespace": true } ``` - **IntelliJ IDEA**: - 打开设置:`Settings > Editor > General` - 勾选:`Strip trailing spaces on Save` - 设置为:`Always` 或 `Only for changed lines` --- ## ✅ 3. 删除字符串中所有空白字符(包括换行、制表符等) ```js const str = " \tHello\n \rworld! "; const cleanStr = str.replace(/\s+/g, ' ').trim(); console.log(cleanStr); // 输出: "Hello world!" ``` --- ## ✅ 4. 删除 HTML 字符串中余的空格(如用于 SSR 或模板处理) ```js function minifyHTML(html) { return html.replace(/\s+/g, ' ').trim(); } const html = ` <div> <p> Hello World </p> </div> `; console.log(minifyHTML(html)); // 输出: "<div> <p> Hello World </p> </div>" ``` --- ## ✅ 5. 删除 JSON 字符串中的空格(用于压缩传输) ```js const obj = { name: "Alice", age: 25 }; const jsonString = JSON.stringify(obj); console.log(jsonString); // 输出: {"name":"Alice","age":25} ``` --- ## ✅ 6. 使用 ESLint 自动修复空格(适用于代码规范) 如果你使用 ESLint,可以开启规则自动修复空格: ```json { "rules": { "no-multi-spaces": ["error", { "ignoreEOLComments": false }] } } ``` 然后运行: ```bash eslint --fix yourfile.js ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值