Thymeleafテンプレートを使用してHTMLページを生成するサービスに取り組んでいます。これらのテンプレートの1つでは、HTML属性をJSON文字列として使用したいと考えています。私の文脈における関連するオブジェクトはArrayList<String>
です。何もせずに出力は"[item1, item2]"
ですが、私は"["random","stuff"]"
がほしいと思います。ThymeleafとSpringブートコンバーターを使用したJSON文字列へのリスト
私はConverter
とFormatter
について読んだことがありました。しかし私は私の変換システムを動作させることができません。ここで
は私のカスタムConverter
です:
public class ListConverter implements Converter(ArrayList<String>, String {
public String convert (ArrayList<String> source) {
return new JSONArray(source).toString();
}
}
メインクラスが
@SpringBootApplication
public class TheApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(PageServiceApplication.class, args);
}
@Bean
public ListConverter listConverter() {
return new ListConverter();
}
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(listConverter());
}
}
のように見える最後Thymeleafのテンプレートが
<some-webcomponent xmlns:th="http://www.thymeleaf.org"
th:attrappend="tags=${data.tags} ...">
</some-webcomponent>
のように見えるのでtags
は私ArrayList<String>
です。私はまた${{data.tags}}
または${#conversions.convert(data.tags, 'String'}
で変換を強制しようとしましたが、唯一これは"[item1, item2]"
から"item1,item2"
になります。
Doingが働いていますが、それ以外の場所ではおそらくArrayList<String>
だけではありません。
は、だから私の質問は以下のとおりです。
- がすべてで、この可能ですか?
- は
Converter
ですか? - 設定には何が欠けていますか?
ありがとうございます。
は、あなたの答えをありがとう:) – kalnic29