URL-адрес Grails отображает неверный URL

Грааль 1.3.5

При отображении на новый контроллер в моем приложении:

"/order/$action/$id?" {
  controller = "customerOrder"
}

запрос "/order/show/13" преобразуется в "/ () / ()? / (*)?" как видно здесь в журнале:

17:53:02 DEBUG  UrlMappingsFilter - Matched URI [/order/show/13] to URL mapping [/(*)/(*)?/(*)?], forwarding to [/grails/home/page.dispatch] with response [class org.codehaus.groovy.grails.web.sitemesh.GrailsContentBufferingResponse]

Если я добавлю это отображение:

"/order/show/13"{
  controller = "customerOrder"
  action = "show"
  id = 13
}

Он по-прежнему разрешается в "/ () / ()? / (*)?". Я отредактировал отображение:

"/customerOrder/show/13"{
  controller = "customerOrder"
  action = "show"
  id = 13
}

и журнал отчетов:

18:50:08 DEBUG  DefaultUrlMappingsHolder - Matched URI [/customerOrder/show/13] with pattern [/customerOrder/show/13], adding to posibilities

Позже это также сообщает:

18:50:08 DEBUG  DefaultUrlMappingsHolder - Matched URI [/customerOrder/show/13] with pattern [/(*)/(*)?/(*)?], adding to posibilities

Я полностью сбит с толку этим. В любом случае, это решает то же самое. Идеи кого-нибудь?

1 ответ

По-видимому, в 1.3.5 вы должны использовать именованное замыкание вместо синтаксиса функции при объявлении функции представления.

def show( Long id ) { }

против

def show = {}

Последнее правильно. Если бы кто-то мог пролить свет на то, почему...

Другие вопросы по тегам