Java @自定义对象类型的RequestParams-参数名称
我有一个SpringBoot中管理的Spring控制器。 我想传入整个对象,而不是重复Java @自定义对象类型的RequestParams-参数名称,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我有一个SpringBoot中管理的Spring控制器。 我想传入整个对象,而不是重复MyCustomObject的所有字段来保存一些输入 @ResponseBody @RequestMapping(value = "add", method = RequestMethod.POST) public ResponseEntity<?> add(@ModelAttribute MyCustomObject myObj) { } 在SpringBoot中是否有办法在服务器上查看REST
MyCustomObject
的所有字段来保存一些输入
@ResponseBody
@RequestMapping(value = "add", method = RequestMethod.POST)
public ResponseEntity<?> add(@ModelAttribute MyCustomObject myObj) { }
在SpringBoot中是否有办法在服务器上查看RESTAPI(使用gradlew bootRun手动测试)。验证实际参数会很好。您要查找的是JavaBeans约定,它查看类的公共API。您的类具有名为
beef
和chicken
的属性,相应的方法是get
/set
(对于布尔型,则是is
)
JavaBeans约定不关心如何存储属性——甚至很可能根本不存储属性(例如,isEmpty()
)
至于更大的问题,当输入是一些连贯的整体(如表单)时,将使用
@modeldattribute
(或@RequestBody
)。您可能有一个UserRegistrationForm
,其中包含用户名、名/姓、电子邮件地址、密码。。。当参数之间的关系更松散时,例如搜索的各种参数,请使用@RequestParam
。因此,如果您有一个表单,并且正在添加一个具有多个参数的新对象,@modeldattribute是有意义的,但是如果您正在搜索具有大量松散字段的对象,例如“按名称查找”,然后将它们作为单独的请求参数将是有意义的。@StealthRabbi。如果您熟悉的话,它与命令对象模式非常匹配,我经常使用@modeldattribute
s,它们实际上是服务接口中定义的对象。
@Entity
@Table(name = "my_stuff")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
public class MyCustomObject{
private String mBeef;
private String mChicken;
public String getBeef() {}
public void setBeef(String beef);
public String getChicken() {}
public void setChicken(String chicken);
}