Thymeleaf 2.1から3.0.5にアップグレードしています。私たちの現在のセットアップ(アップグレード前)には、多くのthymeleafテンプレートが定義され、データベーステーブルに格納されています。
3.xにアップグレードしようとすると、2.1のコードは機能しなくなりました...でも問題ありませんが、基本的にThymeleaf 3.0.5で同じことを行う良い例は見つかりません。誰もこれを実装していますか?Thymeleaf 3.0.5のDBからThymeleafテンプレートを読み取る方法は?
org.thymeleaf.templateresolver.StringTemplateResolverを実装する方法のまともな例でも、おそらく正しい方向に私たちを押し込むでしょう...しかし、私たちはそれについて何も見つけることができません。
これは、我々は2.1で使用したものである:すべてのヘルプは高く評価され
public class ThymeleafTemplateResolver extends TemplateResolver {
private final static String PREFIX = "";
public ThymeleafTemplateResolver() {
setResourceResolver(new DbResourceResolver());
setResolvablePatterns(Sets.newHashSet(PREFIX + "*"));
}
@Override
protected String computeResourceName(TemplateProcessingParameters params) {
String templateName = params.getTemplateName();
return templateName.substring(PREFIX.length());
}
private class DbResourceResolver implements IResourceResolver {
@Override
public InputStream getResourceAsStream(TemplateProcessingParameters params, String template) {
ThymeleafTemplateDao thymeleaftemplateDao = ApplicationContextProvider.getApplicationContext().getBean(ThymeleafTemplateDao.class);
ThymeleafTemplate thymeleafTemplate = thymeleaftemplateDao.findByTemplate(template);
if (thymeleafTemplate != null) {
return new ByteArrayInputStream(thymeleafTemplate.getContent().getBytes());
}
return null;
}
@Override
public String getName() {
return "dbResourceResolver";
}
}
}
...
あなたの問題をよりよく理解しようとするにはどうすればいいですか?html thymeleafファイルを通常のリソースとしてWebapp内に持っていないのはなぜですか? – cralfaro
これは長い話です。クレイジーになって、少なくともデータベースの一部をテンプレートで利用できるようにする必要があるとしましょう。 – kasdega
Thymleafeキャッシュは無効になっていますか? –