我有一个简单的servlet如下所示:
@RestController
public class TestServlet {
@RequestMapping(value = "/test1")
public String test1() {
return "test1";
}
@RequestMapping(value = "/test2")
public String test2(@RequestBody TestClass req) {
return "test2";
}
public static class TestClass {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}
但是只有不接收参数的servlet在工作:
作品:http://localhost:8080/test1
不起作用:http://localhost:8080/test2?value=1234
http.springframework.http.converter.HttpMessageNotreadableException:缺少必需的请求正文:public java.lang.String
为什么@requestbody
注释不起作用?我是不是漏掉了一个重要的片段?
@controller
和@restcontroller
之间的区别之一是不必编写@requestbody
和@responsebody
,这意味着控制器方法中没有注释的任何参数(如@pathvariable
、@modelattribute
、...)都将隐式地具有@requestbody
,因此必须作为HTTP实体主体发布。因此,您需要将JSON/XML作为POST的一部分发送。您所做的是将数据作为URL的一部分发送,这使得它成为一个请求参数,而不是body-data,您需要@requestparam
来从URL中提取数据。
另外,我建议您使用@getmapping
/@postmapping
或在@requestmapping
注释中包含方法参数,您希望服务同时用于POST和GET的可能性很小,因此您应该在控制器方法描述中尽可能具体,以限制错误情况。
我想为我的一个编写一个简单的测试,并断言输入已正确映射到: 问题:如何向该servlet发送请求正文。然后再检查一下字段是否都设置正确? 这可能与此类似,但我不知道如何检查/监视已解析的DTO? @重复标记:这不是链接问题(关于如何读取响应正文字符串)的重复。我实际上是在要求进行身体测试。
我尝试使用和通过Postman发送JSON和多个文件,但它不起作用。有可能在API中同时使用这两个注释吗?
试图调用服务http://ip:8080/pqrs/lmn/xyz/runtest/scheduledautomation/1/xyz 下面是JSON字符串 必需的字符串参数“cron expresssion”不存在 如何在postman客户机上调用混合的和服务?
我知道如何实现GDT(全局描述符表)以及段寄存器和段描述符的使用。然而,如何/何时访问GDT条目? 它是通过基本的mov指令访问的吗 这是隐式调用ds段寄存器,然后访问GDT段描述符,还是通过其他方式访问GDT条目?
如何编写angular服务方法参数来调用restful webservice Spring MVC,其签名中包含@RequestBody和@RequestParam。 Java代码: 角服务方法: 如果你帮助我,我将不胜感激。祝您愉快!
问题内容: 我一直在努力使AJAX与Jquery一起使用。到目前为止,我最大的问题是我真的不知道如何弄清楚我在哪里犯错。我真的没有调试AJAX调用的好方法。 我正在尝试建立一个管理页面,其中我要执行的功能之一就是更改SQL数据库中设置的权限。我知道.click函数正在被触发,因此我将其范围缩小了,但是我不确定从AJAX调用到SQL查询的链在哪里出了问题。 我的.js代码: 我的.php处理程序: