Spring不包括来自urlrewrite规则集的页面

时间:2010-07-22 13:37:49

标签: java spring spring-mvc url-rewriting spring-roo

以下是问题的简单解释:

我有一个控制器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 ...

有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在你的urlrewrite.xml中,你有类似

的东西
<rule>
     <from>^/location/([A-Z]+)/name/([A-Z]+)</from>
     <to>/login?name=$2&location=$1</to>
</rule>