36

Grails アプリケーションのデフォルトのホームページを変更して appName/index.gsp にならないようにするための構成設定は何ですか? もちろん、そのページをリダイレクトに設定することもできますが、もっと良い方法があるはずです。

4

7 に答える 7

60

これを UrlMappings.groovy に追加します

"/" {
    コントローラ = "あなたのコントローラ"
    アクション = "あなたのアクション"
 }

このように URLMappings を構成すると、アプリのホームページは yourWebApp/yourController/yourAction になります。

( IntelliGrape ブログからカット/ペースト)

于 2008-09-15T12:24:42.127 に答える
12


構成フォルダー内にある UrlMappings.groovy クラスで次のように試すことができます。

class UrlMappings {

    static mappings = {

        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }

        //"/"(view:"/index")
        "/" ( controller:'Item', action:'index' ) // Here i have changed the desired   action to show the desired page while running the application
        "500"(view:'/error')
    }
}

これが役に立てば幸いです、
ルベル

于 2013-06-27T05:32:41.830 に答える
12

UrlMappings.groovy の編集

たとえば、このルールを追加して、HomeController でルートを処理します。

"/"(コントローラ:'ホーム')

于 2008-09-15T09:57:39.330 に答える
2

シンプルですっきり

  1. ファイルに移動します: grails-app/conf/UrlMappings.groovy。

  2. 次の行を置き換えます: "/"(view:"/index") を "/"(controller:'home', action:"/index") に置き換えます。

Home は実行するコントローラーであり (Spring Security のように 'login' を使用できます)、action はコントローラーに関連付けられた grails ビュー ページです (Spring Security では '/auth')。

アプリケーションのニーズに応じて、ページのリダイレクトを追加します。

于 2011-12-20T19:33:12.493 に答える
0

gails 3.x の答えを探している人は、UrlMappings.groovy を grails-app/controllers/appname に移動しました。

以下の回答が言うように、「/」で始まる行を編集するだけです。

私の場合、その:

"/"(controller:"dashboard", view:"/index")
于 2019-05-03T13:38:19.713 に答える
0

すべての答えは正しいです!しかし、シナリオを想像してみましょう:

パス "/" をコントローラー: "Home" およびアクション: "index" にマップしたため、"/app-name/" にアクセスするとコントローラー Home が実行されますが、パス "/app-name/home" を入力すると、 /index"、それはまだ実行されます! したがって、1 つのリソースに対して 2 つのパスがあります。「ホーム/インデックス」パスが見つかるまで機能します。

別のことは、アクション属性が指定されていないフォームがある場合、デフォルトでは同じコントローラーとアクションに POST されます! したがって、フォームが「/」パスにマップされ、アクション属性が指定されていない場合、フォームは同じコントローラーに送信されますが、今回のパスは「/」ではなく、アドレスバーの「home/index」になります。 URIではなくコントローラー/アクションに送信されているためです。

この問題を解決するには、これらの行を削除またはコメントアウトする必要があります。

//        "/$controller/$action?/$id?(.$format)?"{
//            constraints {
//                // apply constraints here
//            }
//        }

したがって、「/」にアクセスすると機能します。しかし、「ホーム/インデックス」はそうではありません。ただし、1 つの欠陥があります。URLMapping ファイルに明示的に書き込むことによって、すべてのパスを手動でコントローラーにマップする必要があります。私はこれが役立つと思います!

于 2014-10-24T00:24:00.500 に答える