0

何らかの理由で、私の現在の spring-boot プロジェクトは、カスタム thymeleaf タグを評価していません。私はそのようにアプリケーションクラスに方言を登録しています:

  @Bean
  public FormDialect formDialect() {
    return new FormDialect();
  }

方言はプロセッサを次のように参照します。

public class FormDialect extends AbstractDialect {
  public String getPrefix() {
    return null;
  }

  public Set<IProcessor> getProcessors() {
    final Set<IProcessor> processors = new HashSet<IProcessor>();
    processors.add(new com.loja.thymeleaf.processor.form.FormProcessor());
    return processors;
  }
}

しかし、そのようなコードでページを開くと:

      <Form ...>
        <Fieldset type="Input" class="form-group">
          <Label></Label>
          <Input class="form-control"></Input>
        </Fieldset>

        <Fieldset type="Select" class="form-group">
          <Label></Label>
          <Select class="form-control"></Select>
        </Fieldset>

        <Fieldset type="Textarea" class="form-group">
          <Label></Label>
          <Textarea class="form-control"></Textarea>
        </Fieldset>
      </Form>

プロセッサは最終的なコードに評価されていません。誰でもここで何が悪いのか分かりますか? これはこのプロジェクトで機能していましたが、突然 (いくつかの変更の後、何があったか思い出せません) 機能しなくなりました。

4

1 に答える 1

2

@Configuration私の作業コードを比較すると、注釈が欠落している可能性があります。

@Configuration
public class YourThymeleafConfig {
  @Bean
  public FormDialect formDialect() {
    return new FormDialect();
  }
}

プレフィックスを定義する必要があります

public class FormDialect extends AbstractDialect {
  @Override
  public String getPrefix() {
    return "some_prefix";
  }

  @Override
  public Set<IProcessor> getProcessors() {
    final Set<IProcessor> processors = new HashSet<IProcessor>();
    processors.add(new com.loja.thymeleaf.processor.form.FormProcessor());
    return processors;
  }
}

テンプレート

<html xmlns:th="http://www.thymeleaf.org"
      xmlns:some_prefix="http://xxx">
  <!-- ... -->
  <Form some_prefix:your_diarect_attribute="...">
    <!-- ... -->
  </Form>
</html>

your_diarect_attributeに対応していますorg.thymeleaf.processor.AttributeNameProcessorMatcher#attributeName

AttributeNameProcessorMatcherによって拡張されますcom.loja.thymeleaf.processor.form.FormProcessor

于 2016-06-21T01:31:41.580 に答える