1

私の現在のスプリング ブート プロジェクトでは、次の html コードを含むビューが 1 つあります。

<div id="navbar" class="collapse navbar-collapse">
  <ul class="nav navbar-nav navbar-right" sec:authorize="isAuthenticated()">
     ...
  </ul>
  <ul class="nav navbar-nav navbar-right" sec:authorize="isAnonymous()">
     ...
  </ul>
</div>

sec:authorizeしかし、アプリケーションを実行すると、両方の部分が表示されているため、タグが評価されていないようです。

application.properties ファイルで thymeleaf を次のように構成します。

# THYMELEAF (ThymeleafAutoConfiguration)
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false

私の thymeleaf 構成クラスは次のように実装されています。

@Configuration
public class Thymeleaf {
  @Bean
  public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine engine  =  new SpringTemplateEngine();
    final Set<IDialect> dialects = new HashSet<IDialect>();
    dialects.add( new SpringSecurityDialect() );
    engine.setDialects( dialects );

    return engine;
  }
}

誰でも私がここで欠けているものを指摘できますか?

4

1 に答える 1

2

Thymeleaf に次の依存関係を追加してください。

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity4</artifactId>
    <version>2.1.2.RELEASE</version>
    <scope>compile</scope>
</dependency>

また、これを必ず<html>

xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"

また、それが必要だとは思いSet<IDialect>ません(間違っている場合は修正してください)。次のように書くことができます:

Bean
public SpringTemplateEngine templateEngine() {
   SpringTemplateEngine engine = new SpringTemplateEngine();
   engine.setTemplateResolver(templateResolver());
   engine.addDialect(new SpringSecurityDialect());
   return engine;
}
于 2016-05-21T23:25:29.627 に答える