我想在Spring Boot Controller方法中返回一条没有@ResponseBody注释的纯文本消息。
通常,当我返回一个字符串时,会出现一个错误。(实际上,它会查找html文件。)
@GetMapping("/test/message")
public String Message() {
return "This is a plain Text";
}
当我使用此代码时,这将返回一个错误
错误解决模板[这是一个纯文本],模板可能不存在或可能无法访问任何配置的模板解析程序org.thymeleaf.exceptions.TemplateInputExc0019:错误解决模板[这是一个纯文本],模板可能不存在或可能无法访问通过任何配置的模板解析器
我的预期结果(不使用ResponseBy)这是一个纯文本
响应体的问题是它只响应纯文本或html文件。我想自己控制它。
基本上,如果您使用@RestController注释注释您的控制器,那么响应可以作为纯文本返回。并使用@Controller注释,当您想要将其呈现到模板时。
@Controller
class MyThymeleafController {
@GetMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
return "greeting";//renders a template
}
}
@RestController
class MyRestController {
@GetMapping("/hello")
public String helloWorld() {
return "Hello World";//renders plain text
}
}
https://github.com/faskan/spring-boot-thymeleaf-sample
如果您能解释为什么需要在相同的方法中呈现模板或字符串的原因,那就太好了。
您可以直接将HttpServletResponse
作为控制器方法中的参数,通过设置contentType将任何数据写入HttpServletResponse
,也可以使用PrintStream
直接将输出写入响应对象。
public void getData(HttpServletResponse res) {
InputStream in = servletContext.getResourceAsStream("url");
res.setContentType("Any content type");
IOUtils.copy(in, response.getOutputStream());
}
PrintStream print = new PrintStream(res);
print.write("data");
一个解决办法是
@GetMapping("/test/message")
public ResponseEntity<String> Message() {
return new ResponseEntity<>("This is a plain Text", HttpStatus.OK);
}
我正在试用新的Spring 4.0@RestController,以从控制器返回一个简单的文本响应: 当我访问/心跳时,我返回: 结果包括双引号,这是我没有想到的。 当我访问/heartbeat/test时,我会得到一个空响应,但我希望我还活着!文本 使现代化 卷曲-ihttp://myserver.com/rest/heartbeat HTTP/1.1 200 OK内容类型:applicatio
问题内容: 我使用原型进行AJAX开发,并且使用如下代码: 而且我发现“结果”是一个空字符串。所以,我尝试了这个: 但这也没有用。如何获取responseText供其他方法使用? 问题答案: 请记住,在someFunction完成工作后很久才调用onComplete。您需要做的是将回调函数作为参数传递给somefunction。当进程完成工作时(即onComplete),将调用此函数:
我想知道当服务器端发生错误时返回是否正确(错误详细信息将包含在响应主体中)。 例子: 我们正在发送 这是不是正确的行为?我们是否应该将状态代码更改为200以外的值?
我有一个接收HTTP请求的微服务(Java Spring Boot),然后通过HTTP调用REST API调用另一个服务。被调用的服务返回HTTP状态201(无响应正文),但我需要返回HTTP 200和响应正文。 我使用WebClient调用其他服务,对于201状态,我使用的是bodyToMono(Void.class)。那么,如何为我的微服务的客户端返回HTTP 200响应体呢?最佳做法是什么?
问题内容: 这个问题已经在这里有了答案 : 如何从异步调用返回响应? (39个答案) 6年前关闭。 我使用原型进行AJAX开发,并使用如下代码: 而且我发现“结果”是一个空字符串。所以,我尝试了这个: 但这也没有用。如何获取responseText供其他方法使用? 问题答案: 请记住,在someFunction完成工作后很久才调用onComplete。您需要做的是将回调函数作为参数传递给somef
我试图编写一个方法,它接受@PathVariable参数,并将用户重定向到一个jsp文件。 @pathvariable(value=“customerId”)字符串customerId @pathvariable(name=“customerId”)字符串customerId @pathvariable(“customerId”)字符串customerId 谢谢你的帮助。