Let's say we have 3 url-patterns for a servlet named dispatcher in web.xml:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/aaa/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/bbb/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/ccc/*</url-pattern>
</servlet-mapping>
and a controller method:
@RequestMapping(value = "/xxx", method = RequestMethod.POST)
public String foo() {}
Since the path value in @RequestMapping does not contain servlet path, when users request
/aaa/xxx
/bbb/xxx
/ccc/xxx
the requests will all be mapped to method foo.
I think this could cause potential problem if the web site is very complicated. Is it a flaw in Spring Web MVC or I misunderstand something?
Best Answer
You can map all requests to one request mapping by passing multiple value.
and just change mapping in web.xml to handle all type of request to
dispatcher
servlet.You can define different controllers based on application requirement or web flow. You can move common piece of code in utility classes if needed.
Read more in Spring Web MVC framework documentation
You can configure it programatically as well