gpt4 book ai didi

java - 方法上没有@ResponseBody 的@RestController 工作不正确

转载 作者:搜寻专家 更新时间:2023-10-31 19:53:30 25 4
gpt4 key购买 nike

我有以下 Controller :

@RestController
@RequestMapping(value = "/base/url")
public class MyController {

@RequestMapping(
value = "/child/url",
method = RequestMethod.POST
)
@ResponseBody
public String mmm() {
return "Ok";
}
}

现在可以正常工作(服务器响应 Ok),但我认为 @ResponseBody 是多余的,因为我们使用了 @RestController 并删除了 @ResponseBody 注释

我看到以下服务器响应:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body>
<h2>HTTP ERROR 404</h2>
<p>Problem accessing /base/url/child/url/Ok. Reason:

<pre> Not Found</pre>
</p>
<hr />
<i>
<small>Powered by Jetty://</small>
</i>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>


</body>
</html>

你能解释一下这种行为吗?

附言

Spring 版本:4.1.6.RELEASE

附言

我只找到这部分与mvc配置相关:

<context:annotation-config/>

<context:component-scan base-package="base.package"/>

最佳答案

能够使用@RestController您必须显式启用新的注释处理类。通过添加 <mvc:annotation-driven /> (对于 XML)或 @EnableWebMvc (对于 Java 配置)。

默认 DispatcherServlet注册,现已弃用,AnnotationMethodHandlerAdapterDefaultAnnotationHandlerMapping这可以被认为是前身或更新的东西。

关于java - 方法上没有@ResponseBody 的@RestController 工作不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35407390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com