0

グレイルズに新しいM今私の問題は、

URLをhttp:// localhost:8080 / Merchant /として取得する代わりに、アプリケーションを参照するときに、://localhostのみを表示したい。

同様に、アプリケーションの他のビューを参照すると、 http:// localhost:8080 / Merchant / register / listのようなURLが表示されます。また、アプリコントローラーとアクション名を表示したくないので、代わりに1つの単語を表示します。リストか私が欲しい何か他のものかもしれません。

私はURLMappingの概念を調べましたが、正確に何をすべきかを理解しています。理解してから疑問があるかどうかを尋ねる必要があることはわかっていますが、時間がないので、正確に何をする必要があるかを誰かに教えてください。

よろしくお願いします

4

1 に答える 1

3

実際、URLにポートがない場合は、デフォルトでポート80が使用されます。Apachehttpサーバーはこのポートで正常に実行されています。

Tomcatサーバーで実行されているgrailsアプリケーションでこれを実現するには、2つの異なる方法があります。

  • Tomcatサーバーのポートを変更します(grailsを起動するときにDserver.portパラメーターを使用します)
grails -Dserver.port=80 run-app
  • または、TomcatサーバーのプロキシとしてApachehttpサーバーを使用します。

http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.1/reference/TomcatBehindProxyServer.html


編集:

2番目にURLを使用します。質問が正しければ、デフォルトのビューとしてリストビューが必要です。これを実現するには、次のURLマッピングを使用します(ただし、テストはしていません)。

static mappings = {
    "/$controller" {
       controller = "controller"
       action = "list"
    }
}

編集2:

コントローラー名ではなく、アクションのみを表示する必要があります。

  • これは、1つのコントローラーでのみ可能です。そうでなければ、どのコントローラーのどのアクションを使用するかをグレイルがどのように知るのでしょうか。

  • ホームコントローラーのURLにコントローラー名がなくてもアクセスできるアクションを定義できます。

    1. ホームコントローラーを作る

    2. 次のマッピングを設定します

"/$action"
 {
    controller = "yourController"
    action = "action"
 }

このように、他のコントローラのすべてのインデックスアクションに注意してください。/ controllerは、ホームコントローラーに名前コントローラーを使用したアクションがあることを想定しているため、正しく機能しません。


編集3:URLにコントローラー名がなくてもアクセスできるようにするすべてのアクションのURLマッピングを定義することもできます。このように、アクションはホームコントローラーにある必要はありません。

"/myAction"
 {
    controller = "yourController"
    action = "myAction"
 }
于 2011-05-12T07:42:48.153 に答える