Tiles 2 And no mapping found for HTTP request with URI - Spring -MVC

I want to use Spring -Tiles. Here you can see what my application looks like.

So my question is: why the Spring-MVC Servlet dispatcher cannot resolve my landing page ???

+3
source share
3 answers

The problem is what you use <url-pattern>/*</url-pattern>in the servlet mapping, so all requests are processed DispatcherServlet, including the *.jsptile request . The most universal way to solve it (but to keep URLs calm without prefixes) is to use UrlRewriteFilter .

+4

, ViewResolver. , SpringSource, ViewResolver:

org.springframework.web.servlet.view.tiles2.TilesViewResolver

ViewResolver , . Spring Tiles. TilesConfigurer.

:

+2

Spring, , view (jsp) DispatcherServlet.

web.xml

 <servlet>  
    <servlet-name>dispatcher</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
     <servlet-name>dispatcher</servlet-name>  
     <url-pattern>/app/*</url-pattern>  
</servlet-mapping>

urlrewrite.xml - :

<urlrewrite default-match-type="wildcard">
<rule>
    <from>/</from>
    <to>/app/</to>
</rule>
<rule>
    <from>/**</from>
    <to>/app/$1</to>
</rule>
<outbound-rule>
    <from>/app/**</from>
    <to>/$1</to>
</outbound-rule>

I assume that you are using urlrewrite if you are not importing the jar and add a filter mapping to your web.xml, for example:

<filter>
    <filter-name>urlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>urlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 
+1
source

Source: https://habr.com/ru/post/1748590/


All Articles