2011-02-02 12 views
0

の問題は、私は、コントローラ作成:GrailsのUrlMappings私はGrailsのでRESTサービスを実装しています

class LoaderController { 

    def index = { } 

    def save = { 

    String input = params.er3f 
    render 'OK' 

    } 
} 

をそしてUrlMappingsに、次の追加:私はhttp://localhost:8080/MyApp/loader?er3f=12345678を実行すると

"/loader/$id?" (controller:loader) { 
    action = [GET:"save"] 
} 

、私が手を404およびdescription要求されたリソース(/MyApp/WEB-INF/grails-app/views/loader/index.jsp)は使用できません。

しかし、実行するとhttp://localhost:8080/MyApp/loader/save?er3f=12345678が正常に動作します。

私のUrlマッピングには何が問題なのですか?

答えて

3

まず、定義したマッピングを使用していません。 idパラメータを指定しますが、er3fを渡しますが、/ syntaxは使用しませんが、クエリー文字列に入れますか? - http://localhost:8080/MyApp/loader/12345678を呼び出すと構文が使用されます。

しかし、マッピング自体にも2つの異なるアプローチが混在しているため、発砲していません。マップを使用して、アクションとコントローラーを括弧で指定するか、Closureを使用してそこに指定できますが、それらを混在させることはできません。

最後に、idパラメータを指定しましたが、コントローラ内でer3fパラメータを探しています。そのため、常にnullになります。

これは、あなたが望むマッピングされます。例::

"/loader/$er3f?" { 
    action = [GET:"save"] 
    controller = 'loader' 
} 
+0

1は、あなたが実際にコントローラとアクションの定義を混ぜることができ、我々は一緒に閉鎖 – fabien7474

+1

で括弧内のアクション/コントローラの宣言を混在させることはできませんことを知らなかった ''/validate/"(コントローラ:" addressVerification "){action = [GET:" validate "]}' – stan229

関連する問題