Вот простое объяснение проблемы:
У меня есть контроллер RedirectController, так что я хочу обрабатывать все как http://mydomain/**
Однако, все же я хочу, чтобы перенаправить http://mydomain/ для контроллера индекса (или index.jspx и т. Д.), И, скорее всего, в будущем мне нужно исключить / help / about URLs.
Текущий метод заключается в том, что я не изменил созданный Spring Roo urlrewrite.xml,Вот.Код:
<urlrewrite default-match-type="wildcard">
<rule>
<from>/resources/**</from>
<to last="true">/resources/$1</to>
</rule>
<rule>
<from>/static/WEB-INF/**</from>
<set type="status">403</set>
<to last="true">/static/WEB-INF/$1</to>
</rule>
<rule>
<from>/static/**</from>
<to last="true">/$1</to>
</rule>
<rule>
<from>/</from>
<to last="true">/app/index</to>
</rule>
<rule>
<from>/app/**</from>
<to last="true">/app/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
Затем я использовал сопоставления аннотаций в моем RedirectControlller.
@RequestMapping("/**")
@Controller
public class RedirectController {
....
@RequestMapping(method = RequestMethod.GET, value = "/{value}")
public String get(@PathVariable String value, ModelMap modelMap, HttpServletRequest request, HttpServletResponse response) {
...
Так что, когда запрашивается http://mydomain/xxx, это get () метод будет использовать значение ххх.Однако, когда я использую такую схему, по запросу http://mydomain/ индекс передается как {значение} (например, ххх).(что-то, что я не хочу.)
В соответствии с правилами отображения в xml-файле выше, любой запрос / ** перенаправляется в DispatcherServlet в файле web.xml, чтобы обработчик отображения на основе аннотаций смотрел нааннотация RedirectController и просто включает в себя все URL, которые мы хотим исключить ...
Есть идеи для решения этой проблемы?