2013-10-25 4 views
1

Я новичок в Tiles и пытаюсь заставить Tiles3 работать с Spring MVC 3.2.4. Я думал, что у меня все настроено/настроено правильно, но я вообще ничего не вижу. Я попытался включить ведение журнала DEBUG для org.apache.tiles, но ничего не отображается в журналах вообще для фрагментов.Spring 3 MVC + Tiles 3 - ничего не отображается

Я совершенно смущен. Я полагаю, что с моими путями или конфигурацией должно быть что-то не так, но у меня нет первой идеи, с которой можно начать отладку Tiles, чтобы определить, что она ищет, или почему что-то не найдено. Я попытался поставить точки останова на каждый открытый метод в TilesView, но при каждом попытке доступа к странице ничего не вызывается.

webmvc-config.xml:

<!-- Tiles page resolver --> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" > 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" /> 
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
<property name="definitions"> 
    <value>/WEB-INF/tiles.xml</value> 
</property> 
</bean> 

/WEB-INF/tiles.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 
<tiles-definitions> 
    <definition name="secure/login" template="/WEB-INF/views/tiles/layouts/default.jsp"> 
      <put-attribute name="body" value="/WEB-INF/views/tiles/secure/login/body.jsp"/> 
    </definition> 
</tiles-definitions> 

И я могу подтвердить, что файлы/WEB-INF/просмотр/плитка/макеты /default.jsp и /WEB-INF/views/tiles/secure/login/body.jsp.

Я надеюсь на сообщение об ошибке или, по крайней мере, на выход журнала, поэтому я могу начать понимать это, но я ничего не получаю. Единственное, что я вижу, это плитки, связанные с журналом вывода:

2013-10-25 13:55:05,034 [localhost-startStop-1] INFO web.servlet.view.tiles3.TilesConfigurer - Found JSP 2.1 ExpressionFactory 
2013-10-25 13:55:05,082 [localhost-startStop-1] INFO org.apache.tiles.access.TilesAccess - Publishing TilesContext for context: org.springframework.web.servlet.view.tiles3.SpringWildcardServletTilesApplicationContext 

Где и как начать?

Я должен добавить, что в настоящее время у меня есть приложение, работающее с Tiles2 успешно, и пыталось перейти на Tiles3, но мне не повезло.

Контроллер выглядит следующим образом:

SecureController.java

@RequestMapping("/secure/**") 
@Controller 
public class SecureController { 

    @RequestMapping(value = "/login", method = RequestMethod.GET) 
    public String login(ModelMap model) { 
     return "secure/login"; 
    } 
} 

И я могу подтвердить, что "вернуть безопасный/логин" оператор выполняется.

log4j.xml:

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ISO8601} [%t] %-5p %c{5} - %m%n" /> 
     </layout> 
    </appender> 

    <!-- Some other loggers here too --> 

    <!-- Apache Tiles --> 
    <logger name="org.apache.tiles"> 
     <level value="TRACE" /> 
    </logger> 


    <root> 
     <level value="INFO" /> 
     <appender-ref ref="STDOUT" /> 
    </root> 
</log4j:configuration> 

pom.xml фрагмент кода:

<!-- Apache Tiles --> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-extras</artifactId> 
     <version>3.0.1</version> 
    </dependency> 

URL осуществляется доступ: // локальный: 8080/MyApp/безопасный/Войти

+0

Как вы делаете запрос (т. Е. Что такое URL-адрес?) Как выглядит ваш контроллер? Как выглядит ваш log4j.xml? Вы действительно не предоставили достаточно для устранения неполадок. – MattSenter

+0

@kungfuters Я обновил вопрос с дополнительной информацией, которую вы запросили. Я не ставил их в оригинале, поскольку я думал, что они были довольно тривиальными, но добавили их. –

+0

Проблема решена. Глупая ошибка.Если бы InternalResourceViewResolver похоронили в конфигурации намного выше, чем я не видел. Удалено все, как и ожидалось. Благодарю. –

ответ

2

Нашли проблему. Оставляя этот пост в случае, если кто-то другой столкнется с проблемой. Я пропустил конфигурацию выше в конфигурационном файле, который установил InternalResourceViewResolver. К сожалению, Spring может обрабатывать только один UrlViewResolver или InternalResourceViewResolver в цепочке. Не указывая предпочтения заказа, Spring пыталась использовать InternalResourceViewResolver (JstlView) и полностью пропускать разрешающий элемент Tiles.

Удалено другое разрешение, и все работает так, как ожидалось.

Смежные вопросы