現在のスプリング ブート アプリケーションでは、この属性setting:attrをいくつかのタグに実装しようとしています。
<a class="navbar-brand" th:href="@{/}" setting:attr="Project name"></a>
この属性を処理するダイアレクトとプロセッサ クラスは次のとおりです。
- 方言:
public class SettingDialect extends AbstractDialect {
public SettingDialect() {
super();
}
//
// All of this dialect's attributes and/or tags
// will start with 'menu:'
//
public String getPrefix() {
return "setting";
}
//
// The processors.
//
@Override
public Set<IProcessor> getProcessors() {
final Set<IProcessor> processor = new HashSet<IProcessor>();
processor.add(new PreferenceProcessor());
return processor;
}
}
- プロセッサー:
public class PreferenceProcessor extends AbstractTextChildModifierAttrProcessor {
public PreferenceProcessor() {
super("attr");
}
public int getPrecedence() {
return 1000;
}
@Override
public String getText(final Arguments arguments, final Element element, final String attributeName) {
return "Hello, " + element.getAttributeValue(attributeName) + "!";
}
}
しかし、アプリケーションを実行して、この属性を使用するタグを持つページにアクセスすると、処理されません (setting:attr="Project name"適切な値の代わりにソース コードが表示されます)。
誰でもここで何が問題なのかヒントを教えてもらえますか?
アップデート
thymeleaf の構成は次のとおりです。
@Configuration
public class ThymeleafContext {
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
final Set<IDialect> dialects = new HashSet<IDialect>();
dialects.add( new SpringSecurityDialect() );
dialects.add ( new FormDialect() );
dialects.add ( new ListaDialect() );
dialects.add ( new MenuDialect() );
dialects.add ( new SettingDialect() );
engine.setDialects( dialects );
return engine;
}
}