程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> SpringMVC @RequestBody問題:Unrecognized field , not marked as ignorable,springfield

SpringMVC @RequestBody問題:Unrecognized field , not marked as ignorable,springfield

編輯:JAVA綜合教程

SpringMVC @RequestBody問題:Unrecognized field , not marked as ignorable,springfield


在使用Json傳值並且使用@RequestBody注解的時候需要注意一些問題:


第一條容易理解,因為RequestBody就是request的inputStream,這個流在第一次使用該注解後會關閉,後面的都會報錯(stream closed)。


第二條如果沒有包含前台傳來的字段,就會報錯:Unrecognized field xxx , not marked as ignorable,這是因為MappingJacksonHttpMessageConverter默認要求必須存在相應的字段。如果沒有前台傳來的某個字段,就會報錯。。


解決方法有很多,可以增加一個字段來接收前台傳來的這個值,如果存在多個字段,這種方式很不好(就算一個字段,如果沒用,新增字段也不好)。


或者在前台往後台傳值的時候,去掉無用的字段。這樣還能減少網絡傳輸的大小。


還有一些方法,這些方法主要是使用Jackson提供的json注解。


@JsonIgnore注解用來忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法時,和Filed效果一樣。這個注解只能用在POJO存在的字段要忽略的情況,不能滿足現在需要的情況。


@JsonIgnoreProperties(ignoreUnknown = true),將這個注解寫在類上之後,就會忽略類中不存在的字段,可以滿足當前的需要。這個注解還可以指定要忽略的字段。使用方法如下:

@JsonIgnoreProperties({ "internalId", "secretKey" })

指定的字段不會被序列化和反序列化。

 原文: http://blog.csdn.net/isea533/article/details/33397735

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved