0

以下是问题的简单解释:

我有一个控制器 RedirectController,所以我想处理http://mydomain/之类的所有内容**

但是,我仍然需要将http://mydomain/重定向到索引控制器(或 index.jspx 任何东西),并且很可能我需要在将来排除 /help /about 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>

然后我在我的 RedirectController 中使用了映射注释。

@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...

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

4

1 回答 1

1

在你的 urlrewrite.xml 你会有类似的东西

<规则>
     <from>^/location/([AZ]+)/name/([AZ]+)</from>
     <to>/login?name=$2&location=$1</to>
</规则>
于 2010-07-23T10:58:58.293 回答