2015-11-13

(beego) router 작성시 주의할 점



  • router 작성시에 하나의 컨트롤러에 여러 URL 을 매핑하는 경우, urlfor 가 예측할 수 없을 정도로 비정상적으로 작동한다. 예를 들어, 다음과 같이 router 를 작성했다고 하자.
        ...
    
        beego.Router("/mgmt/user", &c_mgmt.UserController{}, "get:Index")
        beego.Router("/mgmt/user/:page", &c_mgmt.UserController{}, "get,post:Index")
        beego.Router("/mgmt/user/:page/:s_item/:val", &c_mgmt.UserController{}, "get:Index")
    
        ...
  • View 의 템플릿에서
    {{urlfor ""mgmt.UserController.Index" "1"}}
    를 작성한 경우, /mgmt/user/1 이 호출되어야 겠지만, 실제로는 전혀 다른 값이 호출된다는 것이다. 반면, URL을 호출한 경우에는 매핑된 컨트롤러가 제대로 실행된다. 그러므로, 정상적인 동작을 위해서는 URL 과 컨트롤러는 1:1 로 매핑해야 한다.

댓글 없음:

댓글 쓰기