Java 当@ResponseBody从控制器中删除时,将收到404 not found错误消息
我有一个spring boot应用程序,其中我正在创建一个带有Java 当@ResponseBody从控制器中删除时,将收到404 not found错误消息,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个spring boot应用程序,其中我正在创建一个带有@controller注释的控制器,当我尝试使用url访问资源时,它显示给我404,“未找到”。但是,只要我在类级或方法级添加注释@ResponseBody,它就会提供所需的输出。我想了解@Responsebody在这里的作用,为什么它会影响url标识。据我所知,@ResponseBody处理响应 当我有如下代码时- @Controller @RequestMapping(value = "test") public class T
@controller
注释的控制器,当我尝试使用url访问资源时,它显示给我404,“未找到”
。但是,只要我在类级或方法级添加注释@ResponseBody
,它就会提供所需的输出。我想了解@Responsebody
在这里的作用,为什么它会影响url标识。据我所知,@ResponseBody
处理响应
当我有如下代码时-
@Controller
@RequestMapping(value = "test")
public class TestController {
@RequestMapping(value = "/m1")
public @ResponseBody String testMethod(){
return "Hello First Application";
}
}
它给了我一个精确的输出,即Hello First Application
当我从方法testMethod()
中删除@ResponseBody
时,它会给出以下输出
{
"timestamp": "2019-06-13T06:36:14.510+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/test/m1"
}
我希望得到一个字符串作为响应。此链接可能会解释您需要什么:
基本上,注释告诉控制器对象的格式良好
@Controller
通常用于返回视图,@RestController
用于JSON,不再需要@ResponseBody
此链接可能会解释您需要什么:
基本上,注释告诉控制器对象的格式良好
@Controller
通常用于返回视图,@RestController
用于JSON,不再需要@ResponseBody
这取决于您的视图分辨率。只需验证您为项目指定的默认视图分辨率
如果没有ResponseBy,spring将尝试解析与您的视图匹配的字符串“hello…”,但该字符串不存在
如果使用了ResponseBody,则返回将被序列化并写入HTTP响应
请参阅这取决于您的视图分辨率。只需验证您为项目指定的默认视图分辨率 如果没有ResponseBy,spring将尝试解析与您的视图匹配的字符串“hello…”,但该字符串不存在 如果使用了ResponseBody,则返回将被序列化并写入HTTP响应
不带
@ResponseBody
的reference字符串被解释为要呈现的网页的名称,并按原样使用。此错误似乎不明确,我认为响应中应该有不同的错误消息,以便开发人员理解。乍一看,似乎没有为此url指定映射。读了许多文章后,我明白了。在SpringBoot应用程序中,我仍然面临一些问题,以获取我将要修复的正确视图。但是我认为错误信息应该比当前的更慷慨。错误的地方在于,视图也是一个URL,因此404是完全可以接受的。找不到该视图,如果您检查日志(可能需要启用调试),您将看到这一点。是的,我刚刚设置为启用调试,现在非常清楚发生了什么。谢谢@M.deinumwhith@ResponseBody
将字符串
解释为要呈现的网页名称,并按原样使用。此错误似乎不明确,我认为响应中应该有不同的错误消息,以便开发人员理解。乍一看,似乎没有为此url指定映射。读了许多文章后,我明白了。在SpringBoot应用程序中,我仍然面临一些问题,以获取我将要修复的正确视图。但是我认为错误信息应该比当前的更慷慨。错误的地方在于,视图也是一个URL,因此404是完全可以接受的。找不到该视图,如果您检查日志(可能需要启用调试),您将看到这一点。是的,我刚刚设置为启用调试,现在非常清楚发生了什么。感谢@M.DeinumThanks提供的Claudiu链接,但它只指定@Responsebody提供响应的JSON表示,但404表示,找不到请求的URL。问题仍然是,我们正在更改响应的类型,它应该如何影响URL标识。感谢链接Claudiu,但它只指定@ResponseBy提供响应的JSON表示,但404表示,找不到请求的URL。问题仍然是,我们正在更改响应的类型,它应该如何影响URL标识。