springboot2.5 对象发送到前端后引号被转换为&qout;
时间: 2024-04-10 08:27:06 浏览: 57
模为60的BCD码加法计数器FPGA设计verilog源码quartus工程文件.zip
5星 · 资源好评率100%
你提到的问题可能是由于 Spring Boot 2.5 版本中的一个新功能引起的。从 Spring Boot 2.5 开始,默认使用了新的 `CharacterEscaper` 来对特殊字符进行转义,其中包括引号。
为了解决这个问题,你可以尝试以下几种方法:
1. 使用HTML转义字符:在前端页面中,可以使用 `"` 替换引号。例如,如果你使用 Thymeleaf 模板引擎,可以在模板中使用 `th:text` 属性来替换引号。
```html
<p th:text="${myObject.property.replace('"', '\"')}"></p>
```
2. 自定义转义逻辑:你可以创建一个自定义的 `CharacterEscaper` 实现,通过重写 `escape` 方法来自定义字符的转义逻辑。然后,在配置类中将自定义的 `CharacterEscaper` 注册为 Bean。
```java
import org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
@Configuration
public class WebMvcConfig implements WebMvcRegistrations {
@Override
public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
return new RequestMappingHandlerMapping() {
@Override
protected void registerHandlerMethod(Object handler, Method method, RequestMappingInfo mapping) {
// 注册自定义的CharacterEscaper
setUrlPathHelper(new CustomUrlPathHelper());
super.registerHandlerMethod(handler, method, mapping);
}
};
}
}
```
3. 回退到旧版本:如果以上方法都无法解决问题,你可以考虑回退到 Spring Boot 2.4.x 版本,其中默认没有启用新的字符转义功能。
希望以上方法对你有所帮助!如果还有其他问题,请随时提问。
阅读全文