如何将 long 传递给 spring PUT 控制器
How to pass long to the spring PUT controller
我有控制器:
@RestController
public class AdminController {
@PutMapping("/path/max_file_size")
public void setMaxFileSize(@ModelAttribute MaxFileSizeDto size) {
System.out.println(size.getSize());
}
public static class MaxFileSizeDto {
private long size;
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
}
}
我用 postman 发送 http 请求:
但
我总是得到 0
size.getSize()
我做错了什么?
在添加模型之前,您应该记住,Model
和 Controller
应该分开。这意味着将您的模型保存在另一个包或 class.For posting/putting 数据中,您应该使用 Object
(String, Integer,Long) 而不是 primitive
(int, long etc).
假设你的模型 Class
MaxFileSizeDto.java
public static class MaxFileSizeDto {
private Long size;
public Long getSize() {
return size;
}
public void setSize(Long size) {
this.size = size;
}
}
您的控制器 class 将是:
@RestController
public class AdminController {
@PutMapping("/path/max_file_size")
public void setMaxFileSize(@ModelAttribute MaxFileSizeDto size) {
System.out.println(size.getSize());
}
}
当您以 application/x-www-form-urlencoded
格式发送数据时,您的数据将以这种格式发送并直接绑定到 @ModelAttribute
定义的 class.
param1=data1¶m2=data2¶m3=data3
但是邮递员在内部以这种格式发送数据。
如果您想将数据作为 @RequestBody
发送,那么您应该使用 json 数据,说明您的内容类型是 application/json
。为此,您应该 select raw
邮递员的单选按钮和 select application/json
的下拉菜单。(行中的最后一个元素)
在这些情况下,数据将为
{
"size":123456
}
我有控制器:
@RestController
public class AdminController {
@PutMapping("/path/max_file_size")
public void setMaxFileSize(@ModelAttribute MaxFileSizeDto size) {
System.out.println(size.getSize());
}
public static class MaxFileSizeDto {
private long size;
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
}
}
我用 post
但
我总是得到 0size.getSize()
我做错了什么?
在添加模型之前,您应该记住,Model
和 Controller
应该分开。这意味着将您的模型保存在另一个包或 class.For posting/putting 数据中,您应该使用 Object
(String, Integer,Long) 而不是 primitive
(int, long etc).
假设你的模型 Class
MaxFileSizeDto.java
public static class MaxFileSizeDto {
private Long size;
public Long getSize() {
return size;
}
public void setSize(Long size) {
this.size = size;
}
}
您的控制器 class 将是:
@RestController
public class AdminController {
@PutMapping("/path/max_file_size")
public void setMaxFileSize(@ModelAttribute MaxFileSizeDto size) {
System.out.println(size.getSize());
}
}
当您以 application/x-www-form-urlencoded
格式发送数据时,您的数据将以这种格式发送并直接绑定到 @ModelAttribute
定义的 class.
param1=data1¶m2=data2¶m3=data3
但是邮递员在内部以这种格式发送数据。
如果您想将数据作为 @RequestBody
发送,那么您应该使用 json 数据,说明您的内容类型是 application/json
。为此,您应该 select raw
邮递员的单选按钮和 select application/json
的下拉菜单。(行中的最后一个元素)
在这些情况下,数据将为
{
"size":123456
}