5

私はURLマッピングを使用して、URLディレクトリ構造をサイト内のカテゴリに変換しています。現在は次のものを使用しています。

class UrlMappings {

    static excludes = ['/css/*','/images/*', '/js/*', '/favicon.ico']
    static mappings = {       

        "/$category1?/$category2?/$category3?/"(controller: 'category')

        "500"(view:'/error')
        "404"(view:'/notFound')
    }
}

現在、これは3レベルの深さのカテゴリをサポートしています。N>=1の深さのカテゴリNをサポートできるようにしたいと思います。

これはどのように達成できますか?

4

2 に答える 2

6

シングルまたはダブルのアスタリスクは、ウィルカードのURLマッピングに使用されます。

単一のアスタリスクは、指定されたレベルのすべてに一致します。

static mappings = {
    "/images/*.jpg"(controller:"image")
}

// Matches /images/logo.jpg, images/header.jpg and so on

二重アスタリスクは、複数のレベルのすべてに一致します。

static mappings = {
    "/images/**.jpg"(controller:"image")
}

// Matches /images/logo.jpg, /images/other/item.jpg and so on

?オプションのマッピング一致の場合と組み合わせると、質問のコンテキストで次のように機能します。

class UrlMappings {

    static excludes = ['/css/*','/images/*', '/js/*', '/favicon.ico', '/WEB-INF/*']
    static mappings = {
        "/**?"(controller: 'category')

        "500"(view:'/error')
        "404"(view:'/notFound')       
    }
}
于 2011-03-04T20:37:06.873 に答える
0

この質問は古くからありますが、URLマッピングでこれを行うこともできます

"/categories/$categories**?"(controller:categories)

これにより、残りのURIがparam変数にロードされます

  /categories/animals/dogs/retrievers

  ///goes to categories controller and has...
  params.categories //= "animals/dogs/retrievers"

次に、それを使用してさまざまな動的なことを行うことができます

于 2019-04-14T03:01:01.987 に答える