所以我迷路了,直到我用了我的一些大脑并想出了一个主意
我的pojo是后端和前端之间共享的DTO,所以知道我不知道如何转换,我说了为什么不将此过程委托给一些机制
jackson api来了
我重写了toString dto的方法来编写当前pojo的json字符串,在转换器中,我只需要使用
ObjectMapper
要读取此json,请将其解析到我的pojo(DTO对象)
这是我的实施方案
@Override
public String toString() {
try {
return new ObjectMapper().writeValueAsString(this);
} catch (JsonProcessingException ex) {
Logger.getLogger(ApplicationFormAddController.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
对于我的转换器
public class AppDataFormConverter implements Converter<String, ComponentDataForm>{
@Override
public ComponentDataForm convert(String s) {
System.out.println(s);
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.readValue(s, ComponentDataForm.class);
} catch (IOException ex) {
Logger.getLogger(AppDataFormConverter.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("handled here");
return new ComponentDataForm();
}
}
和转换器注册过程
@Configuration
public class ConvertersConfig extends WebMvcConfigurerAdapter{
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new AppDataFormConverter());
super.addFormatters(registry); //To change body of generated methods, choose Tools | Templates.
}
}