实现HttpMessageConverter
/**
* 自定义HttpMessageConverter
*/
public class MyMessageConverter extends AbstractHttpMessageConverter<FeeReceipt> {
//新建一个自定义媒体类型
public MyMessageConverter(){
super(new MediaType("application","x-wise", Charset.forName("UTF-8")));
}
//表名此MessageConverter支持的类型
@Override
protected boolean supports(Class<?> clazz) {
return FeeReceipt.class.isAssignableFrom(clazz);
}
//处理前端由"-"隔开的数据,传入SpringMVC处理
@Override
protected FeeReceipt readInternal(Class<? extends FeeReceipt> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
String result= StreamUtils.copyToString(inputMessage.getBody(),Charset.forName("UTF-8"));
String[] strs=result.split("-");
return new FeeReceipt();//通过构造函数构建
}
//SpringMVC处理数据,传出到页面
@Override
protected void writeInternal(FeeReceipt feeReceipt, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
String out="hello:"+feeReceipt.getMdmCode();
outputMessage.getBody().write(out.getBytes());
}
}
注册此converter到Spring MVC
@Component
public class MyWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MyMessageConverter());
}
}