Java 如何配置spring mvc来填充基于Jackson注释的@RequestMapping参数?
Jackson注释可以序列化对象,但解析请求参数不起作用 有一个带有Jackson注释的类,如下所示:Java 如何配置spring mvc来填充基于Jackson注释的@RequestMapping参数?,java,spring,forms,spring-mvc,Java,Spring,Forms,Spring Mvc,Jackson注释可以序列化对象,但解析请求参数不起作用 有一个带有Jackson注释的类,如下所示: public class Role{ @JsonProperty( value = "description", defaultValue = "description", required = false, access = Access.READ_WRITE) private String descrip
public class Role{
@JsonProperty(
value = "description",
defaultValue = "description",
required = false,
access = Access.READ_WRITE)
private String description;
@JsonProperty(
value = "code_name",
defaultValue = "permission",
required = true,
access = Access.READ_WRITE)
private String codeName;
...
}
@RequestMapping(value = "new", method = RequestMethod.POST)
public Role create(Role role) {
...
}
正如您所看到的,属性codeName在json或xml中被序列化为code_name。例如,获得角色是:
@RequestMapping(value = "{id}", method = RequestMethod.GET)
public Role getRole(@PathVariable id){
...
}
结果如下:
{
"description": "..",
"code_name": ".."
}
这是我的mvc配置:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="objectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
我用名为description和code_name的字段填写表单并发送到服务器。但是,description只是设置为输入角色,并且代码名为null
顺便说一下,如果表单字段名替换为codeName也可以。您需要使用
@RequestMapping(value = "new", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
public Role create(@RequestBody Role role) {
“角色中的值为null”是create?返回的值,我将数据作为表单数据发送,这是来自body和json编码的解码角色。