오류

2014-06-17 3 views
2
나는 다음과 같은 구조로 Thymeleaf와 타일로 봄을 사용하여 프로젝트했다

:

enter image description here오류

I을 내 스프링 서블릿을 구성한 :

<bean id="templateResolver" 
       class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
       <property name="prefix" value="/WEB-INF/templates/" /> 
       <property name="suffix" value=".html" /> 
       <property name="characterEncoding" value="UTF-8" /> 
       <property name="templateMode" value="HTML5" /> 
     </bean> 

     <bean id="tilesConfigurer" 
       class="org.thymeleaf.extras.tiles2.spring4.web.configurer.ThymeleafTilesConfigurer"> 
       <property name="definitions"> 
         <list> 
           <value>/WEB-INF/tiles-defs.xml</value> 
         </list> 
       </property> 
     </bean> 
     <bean id="tilesViewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> 
       <property name="viewClass" 
         value="org.thymeleaf.extras.tiles2.spring4.web.view.ThymeleafTilesView" /> 
       <property name="templateEngine" ref="templateEngine" /> 
       <property name="characterEncoding" value="UTF-8" /> 
     </bean> 
     <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> 
       <property name="templateResolver" ref="templateResolver" /> 
       <property name="additionalDialects"> 
         <set> 
           <bean class="org.thymeleaf.extras.tiles2.dialect.TilesDialect" /> 
         </set> 
       </property> 
     </bean> 

내 타일 정의는 다음과 같습니다

<tiles-definitions> 
    <definition name="layout" template="layout"> 
     <put-attribute name="header" value="header" /> 
     <put-attribute name="menu" value="menu" /> 
     <put-attribute name="footer" value="footer" /> 
     <put-attribute name="body" /> 

    </definition> 

    <definition name="usersView" extends="layout"> 
     <put-attribute name="body" value="pages :: users" /> 
    </definition> 
</tiles-definitions> 

이 나에게 다음과 같은 오류 줄 것이다 :

Error resolving template "pages", template might not exist or might not be accessible by any of the configured Template Resolvers 

을하지만 난 템플릿 폴더에 users.html 페이지를 이동 데프

<definition name="usersView" extends="layout"> 
     <put-attribute name="body" value="users" /> 
    </definition> 

의 작업 벌금으로 내 타일을 할 때.

그래서 Thymeleaf는 내 폴더 구조를 허용 할 수 있습니까? 예, 어떻게?

답변

3

네, 그것은 단지

<tiles-definitions> 
    <definition name="layout" template="templates/layout"> 
     <put-attribute name="header" value="templates/header" /> 
     <put-attribute name="menu" value="templates/menu" /> 
     <put-attribute name="footer" value="templates/footer" /> 
     <put-attribute name="body" /> 
    </definition> 

    <definition name="pages/usersView" extends="layout"> 
     <put-attribute name="body" value="pages/users" /> 
    </definition> 
</tiles-definitions> 

설명에

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

     </bean> 

     <bean id="tilesConfigurer" 
       class="org.thymeleaf.extras.tiles2.spring4.web.configurer.ThymeleafTilesConfigurer"> 
       <property name="definitions"> 
         <list> 
           <value>/WEB-INF/tiles-defs.xml</value> 
         </list> 
       </property> 
     </bean> 
     <bean id="tilesViewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> 
       <property name="viewClass" 
         value="org.thymeleaf.extras.tiles2.spring4.web.view.ThymeleafTilesView" /> 
       <property name="templateEngine" ref="templateEngine" /> 
       <property name="characterEncoding" value="UTF-8" /> 
       <property name="order" value="1" /> 
       <property name="viewNames" value="templates/*,pages/*" /> 
     </bean> 
     <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> 
       <property name="templateResolver" ref="templateResolver" /> 
       <property name="additionalDialects"> 
         <set> 
           <bean class="org.thymeleaf.extras.tiles2.dialect.TilesDialect" /> 
         </set> 
       </property> 
     </bean> 

하고 타일 정의에 봄-servlet.xml 파일을 변경 뷰 이름들과 뷰 클래스 속성

를 사용하여 할 수있다 :

우리는

<property name="viewNames" value="templates/*,pages/*" /> 
필요한 폴더에

하고 새로 만드는보기 폴더가이 속성에 간다하여 리졸버

<property name="prefix" value="/WEB-INF/" /> 

에 접두사의 루트 폴더를 정의 드리고 있습니다 리디렉션 또는 전달 너무

+0

와우, 매력으로 일 했어, 고마워 정보 정보 너무, 나 지금 이해한다. – Dunken

0

또한 Repo 계층에 작성된 쿼리가 올바르지 않을 수도 있습니다. 그렇다면 CriteriaBuilder, CriteriaQuery, Predicate를 사용하여 쿼리를 확인하십시오. 일단 조건을 만족하면됩니다.

내 경우에는 조건이 만족스럽지 않은 데이터베이스에서 값을 가져 오려고했습니다.