0

我正在使用 ControllerClassNameHandlerMapping 来避免将 URL 显式映射到控制器,到目前为止它工作正常。我在 index.jsp 中有一个指向welcome.html 的链接,该链接正确映射到welcomeController,其中包含以下内容:

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

问题是,当我尝试在 tiles.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 是:

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

到目前为止,我已经尝试了很多对 tiles.xml 文件的排列,但都没有成功。视图已正确加载,我在控制台中没有错误,但无处可见瓷砖。我错过了什么?

提前致谢 (:

4

2 回答 2

0

我的视图解析器声明如下

<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"
/>
于 2011-01-28T21:15:11.630 回答
0

看起来您可能没有ViewResolver配置 for 磁贴。从文档

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),因此您没有得到图块。

于 2011-01-28T04:33:06.243 回答