0

問題の簡単な説明は次のとおりです。

http://mydomain/ **のようなすべてを処理したいので、コントローラー RedirectController があります。

ただし、まだ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 に答える