【发布时间】:2021-10-06 16:27:02
【问题描述】:
我想返回纯文本消息 Spring Boot Controller Method 中的@ResponseBody 注解。
通常当我返回一个字符串时,这会出错。 (实际上它会寻找一个 html 文件。)
@GetMapping("/test/message")
public String Message() {
return "This is a plain Text";
}
当我使用这段代码时,这会返回一个错误
解析模板时出错 [这是纯文本],模板可能不存在或可能无法被任何已配置的模板解析器访问 org.thymeleaf.exceptions.TemplateInputException:解析模板时出错[这是纯文本],模板可能不存在或可能无法被任何已配置的模板解析器访问
我的预期结果(不使用响应体) 这是纯文本
ResponseBody 的问题是它只能响应纯文本或 html 文件。我想自己控制它。
【问题讨论】:
-
如果不指定
@ResponseBody,Spring 会尝试将响应解析为模板名称。没看懂,@ResponseBody有什么问题?您可以通过@RequestMapping注解的produces变量控制响应类型 -
@RequestMapping(produces="text") 是这样的吗?
-
对于文本,它应该是
@RequestMapping(produces = "text/plain")。附:@GetMapping也有这个参数,所以你可以将你的端点声明为@ResponseBody @GetMapping("/test/message", produces = "text/plain") -
试过这个`@GetMapping(value = "/test/message",produces = "text/plain")`仍然存在错误
-
您的问题有点表述为X-Y problem。您是否绝对要删除 @ResponseBody 注释,或者您是否正在尝试解决潜在问题?
标签: java spring-boot thymeleaf