0

現在のスプリング ブート アプリケーションでは、この属性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;
  }

}

4

0 に答える 0