前端发送参数后端接收不到
后端QUERY 代码(省略不相干的参数, 只保留接收不到的参数):
public class DataResourceTableInfo {
...
protected String sTableName;
...
public String getSTableName() {
return sTableName;
}
public void setSTableName(String sTableName) {
this.sTableName = sTableName;
}
...
}
前端发送参数
{
...
sTableName : 'someValue',
...
}
这样子后端就收不到参数,也不报错
注:(set get 方法为我司自有框架生成)
跟踪springMVC代码,在
package org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter
...
import com.fasterxml.jackson.databind.ObjectMapper;
...
public abstract class AbstractJackson2HttpMessageConverter extends AbstractGenericHttpMessageConverter<Object> {
...
protected ObjectMapper objectMapper;
...
private Object readJavaType(JavaType javaType, HttpInputMessage inputMessage) {
try {
if (inputMessage instanceof MappingJacksonInputMessage) {
Class<?> deserializationView = ((MappingJacksonInputMessage) inputMessage).getDeserializationView();
if (deserializationView != null) {
return this.objectMapper.readerWithView(deserializationView).forType(javaType).
readValue(inputMessage.getBody());
}
}
// 在这进行string json 转javaObj 操作,(其实是byte数组)
return this.objectMapper.readValue(inputMessage.getBody(), javaType);
}
catch (JsonProcessingException ex) {
throw new HttpMessageNotReadableException("JSON parse error: " + ex.getOriginalMessage(), ex);
}
catch (IOException ex) {
throw new HttpMessageNotReadableException("I/O error while reading input message", ex);
}
}
...
}
这个json转换工具识别的set get 方法的规则和我司框架生成的不一致 因此在子类增加get set方法
public String getsTableName() {
return sTableName;
}
public void setsTableName(String sTableName) {
super.setSTableName(sTableName);
}