springboot PostMapping接手字符串参数 换行失效
时间: 2024-12-23 18:14:37 浏览: 3
SpringBoot接手JSP项目-【JSB项目实战】
在Spring Boot中,如果你正在尝试使用`@PostMapping`处理一个接受字符串参数的方法,并希望包含换行(`\n`)的情况,但实际上换行失效了,这可能是由于HTTP请求默认编码的问题。当你发送JSON数据到服务器,浏览器通常会对输入内容进行一些预处理,比如URL编码,其中`\n`会被编码成`%0A`而非实际的换行符。
解决这个问题的一种方法是明确指定参数的接收格式。例如,你可以将参数类型设为`String[]`,然后在方法里手动解析:
```java
@PostMapping("/your-endpoint")
public ResponseEntity<?> handleStringArray(@RequestBody String[] inputLines) {
for (String line : inputLines) {
// 处理每个单独的行,这里line已经是包含换行的实际字符形式了
}
}
```
另一种方法是在HTTP头设置正确的Content-Type,告诉服务器你发送的是`application/json`而不是标准的`text/plain`,这样可以保持原始的字节序列。例如,在前端发送请求时,添加`Content-Type: application/json`:
```javascript
fetch('/your-endpoint', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(['line1\n', 'line2'])
})
```
阅读全文