2011-02-02 3 views
0

문제는 그래서 컨트롤러 생성 :Grails의 UrlMappings 내가 Grails의에서 휴식 서비스를 구현하고있어

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는 정상적으로 작동합니다.

내 UrlMappings에 문제가 있습니까?

답변

3

먼저 정의한 매핑을 사용하고 있지 않습니다. id 매개 변수를 지정하고 er3f을 전달하고/syntax는 사용하지 않고 querystring에 넣으시겠습니까? - http://localhost:8080/MyApp/loader/12345678을 호출하면 구문이 사용됩니다.

그러나 매핑 자체에는 두 가지 다른 접근 방식이 혼합되어있어 실행되지 않습니다. 맵을 사용하고 괄호 안에 액션과 컨트롤러를 지정하거나 Closure를 사용하여 거기에 지정할 수는 있지만 혼합 할 수는 없습니다.

마지막으로 id 매개 변수를 지정했지만 컨트롤러에서 er3f 매개 변수를 찾고 있으므로 항상 null입니다.

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

+1 우리가 함께 당신은 실제로 컨트롤러와 액션 정의를 혼합 할 수있는 폐쇄 – fabien7474

+1

와 괄호 조치/컨트롤러의 선언을 혼합 할 수 있다는 것을 몰랐 : 예 :

당신이 원하는 매핑 ''/ validate/"(컨트롤러 :"addressVerification ") {action = [GET :"validate "]}' – stan229