0

我正在努力解决应该有效但无效的事情......

我的控制器中有这个映射:

@RequestMapping(value = "/keys", method = RequestMethod.POST)
@Consumes(MediaType.APPLICATION_JSON)
public ResponseEntity<Void> parseKeyList(keyList keyList) {
  return new ResponseEntity<Void>(HttpStatus.OK);
}

与简单的类

@XmlRootElement
public class keyList {
  private String keys;
  public String getKeys() {
    return keys;
  }

  public void setKeys(String keys) {
    this.keys = keys;
  }
}

我正在发送这个简单的 JSON 帖子:

{"keys": "This is my key list"}

但我正在null进入keys.

根据要求,原始调度程序-servlet:

   <context:component-scan base-package="com.api" />
   <!-- <mvc:resources mapping="/*" location="/WEB-INF/pages/" /> -->
   <bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
4

1 回答 1

1

您尚未将 keyList 参数附加到请求正文,请将方法更改为:

@RequestMapping(value = "/keys", method = RequestMethod.POST)
@Consumes(MediaType.APPLICATION_JSON)
public ResponseEntity<Void> parseKeyList(@RequestBody keyList keyList) {
    return new ResponseEntity<Void>(HttpStatus.OK);
} 

顺便说一句:类 keyList 应该是 KeyList(大 K)。

还有(看聊天)一个

<mvc:annotation-driven/>

您的 dispatcher-servlet.xml 中缺少。那就是注册杰克逊映射器/编组器的那个。

于 2013-10-02T09:32:03.390 回答