определение tile2 не работает с ControllerClassNameHandlerMapping - PullRequest
0 голосов
/ 28 января 2011

Я использую ControllerClassNameHandlerMapping, чтобы избежать явного сопоставления URL-адресов с контроллерами, и пока он работает нормально. У меня есть ссылка в index.jsp на welcome.html, который правильно сопоставлен с welcomeController, который содержит следующее:

    setCommandClass(User.class);
    setCommandName("user");
    setSuccessView("homeView");
    setFormView("welcomeView");

Проблема в том, что когда я пытаюсь добавить плитку в определение tile.xml с таким URL-адресом, как этот:

<definition name="welcome" extends="base.definition">
    <put-attribute name="title" value="Welcome!"/>
    <put-attribute name="body" value="/WEB-INF/jsp/welcomeView.jsp"/>
</definition>

Единственный компонент плиток, который я объявил в dispatcher-servlet.xml:

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

Я пробовал много перестановок с файлом tile.xml, но безуспешно. Представление загружено правильно, я не получаю ошибок в консоли, но плитки нигде не видно. Чего мне не хватает?

Заранее спасибо (:

Ответы [ 2 ]

0 голосов
/ 29 января 2011

У меня есть преобразователь представления, объявленный следующим образом

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.UrlBasedViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp"
      p:viewClass="org.springframework.web.servlet.view.tiles2.TilesView"
/>
0 голосов
/ 28 января 2011

Похоже, вы не можете настроить ViewResolver для плиток.Из документации

To be able to use the views you have to have a ViewResolver 
just as with any other view technology used with Spring.

Вы можете выбрать между UrlBasedViewResolver и ResourceBundleViewResolver.

Похоже, что в настоящее время он разрешает имя представления (welcomeView) к соответствующему jsp (welcomeView.jsp) и, таким образом, вы не получаете плитки.

...