我正在使用ControllerClassNameHandlerMapping来避免显式地将URL映射到控制器,到目前为止它工作正常。我在index.jsp中有一个链接到welcome.html,它正确映射到welcomeController,其中包含以下内容:
setCommandClass(User.class);
setCommandName("user");
setSuccessView("homeView");
setFormView("welcomeView");
问题在于,当我尝试使用该URL在tiles.xml定义中添加一个tile:
<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中声明的唯一tile 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文件进行了许多排列,但没有成功。视图加载正确,我在控制台中没有错误,但瓷砖无处可见。 我错过了什么?
提前致谢(:
答案 0 :(得分:0)
看起来您可能没有ViewResolver
配置的磁贴。来自documentation
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
),因此您无法获得切片。
答案 1 :(得分: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"
/>