(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 로 매핑해야 한다.

댓글

이 블로그의 인기 게시물

야마하 디지털 피아노 YDP-140

테이블위로 마우스 커서 이동시 색깔 변경하기

피아노 연습