Thyemleaf 3.0.5가 Jackson을 사용하고 있으므로 com.google.gson.ExclusionStrategy 같은 것을 믹스에 추가 할 수있는 방법이 있습니까?Thymeleaf 3.0.5에 ExclusionStrategy를 추가 할 수있는 방법이 있습니까?
은 또한이 관련 :
Thymeleaf inline javascript ignore null
UPDATE :
나는이 작업을 얻을 수 있었다 Metroids가 제시 한 해답을 사용. 먼저 XML 구성 파일에서 Thymeleaf 구성을위한 Java 구성 파일로 전환해야했습니다. 그런 다음 Metroids에 표시된 것처럼 StandardDialect에 액세스 할 수있었습니다. #serializeValue (Object object, Writer writer)를 오버라이드하는 IStandardJavaScriptSerializer 인터페이스를 구현했습니다.
IStandardJavaScriptSerializer 구현 조각 ...
@Override
public void serializeValue(Object object, Writer writer) {
try {
ExclusionStrategy exclusionStrategy = new MyApiJsonExcludeExclusionStrategy();
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setExclusionStrategies(exclusionStrategy);
Gson gson = gsonBuilder.create();
writer.write(gson.toJson(object));
} catch (IOException e) {
throw new TemplateProcessingException("An exception was raised while trying to serialize object to JavaScript using Gson", e);
}
}
Thymeleaf 자바 구성 조각 ...
@Bean
public TemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setEnableSpringELCompiler(true);
Set<IDialect> dialects = engine.getDialects();
StandardDialect dialect = (StandardDialect) dialects.stream()
.filter(d -> d instanceof StandardDialect)
.findFirst()
.get();
dialect.setJavaScriptSerializer(new MyThymeleafJavascriptSerializer());
engine.setTemplateResolvers(getTemplateResolvers());
engine.setAdditionalDialects(getAdditionalDialects());
return engine;
}
감사합니다. 이것은 내가 필요로했던 것의 95 %였다. XML 구성을 사용하여 Java 구성을 사용하도록 전환 한 다음 기본적으로 여기에있는 작업을 수행 할 수있었습니다. 나는 내 자신의 IStandardJavaScriptSerializer를 구축 한 끝에 질문에 대한 내 업데이트의 코드를 보았다. 다시 한 번 감사드립니다. – kasdega