Grails アプリケーションのデフォルトのホームページを変更して appName/index.gsp にならないようにするための構成設定は何ですか? もちろん、そのページをリダイレクトに設定することもできますが、もっと良い方法があるはずです。
7 に答える
これを UrlMappings.groovy に追加します
"/" { コントローラ = "あなたのコントローラ" アクション = "あなたのアクション" }
このように URLMappings を構成すると、アプリのホームページは yourWebApp/yourController/yourAction になります。
( IntelliGrape ブログからカット/ペースト)
構成フォルダー内にある 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')
}
}
これが役に立てば幸いです、
ルベル
UrlMappings.groovy の編集
たとえば、このルールを追加して、HomeController でルートを処理します。
"/"(コントローラ:'ホーム')
シンプルですっきり
ファイルに移動します: grails-app/conf/UrlMappings.groovy。
次の行を置き換えます: "/"(view:"/index") を "/"(controller:'home', action:"/index") に置き換えます。
Home は実行するコントローラーであり (Spring Security のように 'login' を使用できます)、action はコントローラーに関連付けられた grails ビュー ページです (Spring Security では '/auth')。
アプリケーションのニーズに応じて、ページのリダイレクトを追加します。
gails 3.x の答えを探している人は、UrlMappings.groovy を grails-app/controllers/appname に移動しました。
以下の回答が言うように、「/」で始まる行を編集するだけです。
私の場合、その:
"/"(controller:"dashboard", view:"/index")
すべての答えは正しいです!しかし、シナリオを想像してみましょう:
パス "/" をコントローラー: "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 ファイルに明示的に書き込むことによって、すべてのパスを手動でコントローラーにマップする必要があります。私はこれが役立つと思います!