私はSpring MVCとapache-tilesでサンプルプロジェクトを作成しました。私の構成は、ディスパッチャ-servlet.xml TilesViewResolverがwarとしてデプロイ中に動作しない
以下のように非常に簡単です....
<mvc:annotation-driven />
<context:component-scan base-package="com.abc.test" />
<mvc:resources location="/" mapping="/**"></mvc:resources>
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<property name="order" value="0" />
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles/tile-definition.xml</value>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
タイル-definition.xml
...
<tiles-definitions>
<definition name="baseLayout" template="/WEB-INF/views/baseLayout.jsp">
<put-attribute name="title" value="Spring MVC Tiles Example" />
<put-attribute name="content" value="" />
<put-attribute name="footer" value="/WEB-INF/views/footer.jsp" />
</definition>
<definition name="app_home" extends="baseLayout">
<put-attribute name="content" value="/WEB-INF/views/home.jsp" />
</definition>
</tiles-definitions>
と
@Controller
@RequestMapping("/home")
public class HomeController {
@RequestMapping(method = RequestMethod.GET)
public String home(Model model) {
return "app_home";
}
}
何もかもがうまく動作として一つだけのコントローラEclipse IDEで実行している間は問題はありません。しかし、warファイルを生成してTomcat-8サーバーにデプロイしたときには、tilesViewResolver
は傍受されませんでした。私が404を取得し、ブラウザがロードしようとしていたのでtilesViewResolver
がうまく動作しないと言っているのはなぜですかapp_home.jsp。これはタイルの論理ビュー名であり、tilesViewResolver
は春のInternalViewResolver
の前にこれをインターセプトする必要があります。
誰かがそれを経験しましたか?私は何が欠けていますか?
編集:添付ソースコード。
hereからフルコードをダウンロードできます。 warファイルをターゲットフォルダからコピーして、Tomcatサーバーのwebappsディレクトリに貼り付けます。問題は上記のとおりです。
戦争の構造を見せてもらえますか? – Veeram
@Reddy添付ソースコード。 – Cataclysm
WEB-INFの下でタイル定義xmlを移動できますか? – Veeram