web-dev-qa-db-ja.com

SpringMVC + Thymeleaf、エラーメッセージ:テンプレートが存在しないか、構成されているテンプレートリゾルバーのいずれからもアクセスできない可能性があります

私は他の答えを読みましたが、どうでもいいです、ありがとう

春:

<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
</bean>

<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine" />
    <property name="order" value="1" />
</bean>

pom.xml:

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.0.13</version>
</dependency>
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring3</artifactId>
    <version>2.0.13</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
    <scope>compile</scope>
</dependency>

org.thymeleaf.exceptions.TemplateInputException:テンプレート「login.html」の解決中にエラーが発生しました。テンプレートが存在しないか、構成されているテンプレートリゾルバーのいずれからもアクセスできない可能性があります

12
juo

テンプレートリゾルバが必要ですか?

次のようなものを試してください:

<bean id="templateResolver"
      class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/" />
    <property name="templateMode" value="HTML5" />
 </bean>

/path/after/web-inf/login.htmlがSpring MVCコントローラーによって返されていることを確認します。

7
Eric Francis

TemplateResolver構成内の「suffix」プロパティーが欠落している可能性があります。テンプレートリゾルバ構成内でパス「プレフィックス」(ファイルが配置されている場所)と「サフィックス」(ファイル拡張子-それ以外の場合はthymeleafが「ログインなし」のみを解決しようとする)の両方を使用することをお勧めします。 。そのようです:

<beans:bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <beans:property name="prefix" value="/WEB-INF/views/"/>
    <beans:property name="suffix" value=".html"/>
    <beans:property name="templateMode" value="HTML5"/>
    <beans:property name="cacheable" value="false"/> <!-- Development only -->
</beans:bean>

また、コントローラ内でログインビューを要求しても、ファイル拡張子は含まれません。

@RequestMapping(value = "/login")
public String login(HttpSession session) {
    // do stuff

    // Thymeleaf (delegated by springmvc) will request the "login" view at which 
    // point the prefix and suffix are added to resolve the template location. 
    return "login"; 
}

したがって、この構成に基づいて、Mavenベースのプロジェクト内で、login.htmlは次の場所にある必要があります

${project_home}/src/main/webapp/WEB-INF/views/login.html
7
hubbardr

コントローラーリクエストのマッピングでスラッシュ「/」を削除すると、マッピングが機能する場合があります。

@RequestMapping(value = "login")
0
sendon1982