以下是问题的简单解释:
我有一个控制器RedirectController,所以我想处理像http://mydomain/ **
这样的所有内容但是,我仍然需要将http://mydomain/重定向到索引控制器(或index.jspx,无论如何),并且我可能需要在将来排除/帮助/关于URL。
目前的方法是我没有改变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()方法将使用xxx值。但是,当我使用这样的方案时,在http://mydomain/请求中,索引被传递为{value}(例如xxx)。 (这是我不想要的。)
根据上面xml文件中的映射规则,任何/ **请求都会重定向到web.xml文件中的DispatcherServlet,以便基于注释的映射处理程序查看RedirectController的注释,并简单地包含我们要排除的所有URL ...
有什么想法可以解决这个问题吗?
答案 0 :(得分:1)
在你的urlrewrite.xml中,你有类似
的东西<rule> <from>^/location/([A-Z]+)/name/([A-Z]+)</from> <to>/login?name=$2&location=$1</to> </rule>