Nun, da Thyemleaf 3.0.5 Jackson verwendet, gibt es eine Möglichkeit, etwas wie com.google.gson.ExclusionStrategy in den Mix hinzuzufügen?Gibt es eine Möglichkeit, Thymeleaf 3.0.5 eine ExclusionStrategy hinzuzufügen?
Thymeleaf inline javascript ignore null
UPDATE:
Mit der von Metroids vorgeschlagene Antwort ich diese Arbeit bekommen konnte
Auch im Zusammenhang mit diesem. Ich musste zuerst von meiner XML-Konfigurationsdatei zu einer Java-Konfigurationsdatei wechseln, um Thymeleaf zu konfigurieren. Dann konnte ich wie von Metroids gezeigt auf den StandardDialect zugreifen. Ich implementierte die IStandardJavaScriptSerializer-Schnittstelle mit dem Überschreiben von #serializeValue (Object-Objekt, Writer-Writer).
IStandardJavaScriptSerializer Implementierung Schnipsel ...
@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 Java Config-Schnipsel ...
@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;
}
Vielen Dank! Das war 95% von dem, was ich brauchte. Ich musste von der Verwendung der XML-Konfiguration zur Verwendung einer Java-Konfiguration wechseln und dann konnte ich im Grunde tun, was Sie hier haben. Ich habe meinen eigenen IStandardJavaScriptSerializer erstellt, siehe den Code in meinem Update zu der Frage. Danke nochmal, schätze deine Hilfe wirklich. – kasdega