JSON を使用して、Ext JS 4 から Spring 3 コントローラーにフォームを送信しようとしています。Spring のビルトイン Jackson JSON サポートを使用したシリアライゼーション/デシリアライゼーションに Jackson 1.9.8 を使用しています。
新しいレコードの Domain オブジェクトに、最初は null の status フィールドがあります。フォームが送信されると、次の json が生成されます (いくつかのフィールドに縮小されています)
{"id":0,"name":"someName","status":""}
送信後、サーバーログに次のように表示されます
"nested exception is org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.blah.domain.StatusEnum from String value '': value not one of the declared Enum instance names"
したがって、ジャクソンは有効な Enum 値を期待しているか、空の文字列を含む値をまったく期待していないようです。Ext JS、Jackson、Spring のいずれであっても、これを修正するにはどうすればよいですか?
次のような独自の ObjectMapper を作成しようとしました
public class MyObjectMapper extends Object Mapper {
public MyObjectMapper() {
configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
}
}
これをプロパティとして MappingJacksonMappingView に送信しますが、これは機能しませんでした。MappingJacksonHttpMessageConverter にも送信しようとしましたが、うまくいきませんでした。副次的な質問: 自分の ObjectMapper で送信する必要があるのはどれですか?
提案?