Имена контроллеров Grails и сопоставления URL

#rest #grails

#rest #grails

Вопрос:

Я использую grails 3, и я хотел бы знать, как разрешаются имена контроллеров. По-видимому, если UrlMappings.groovy содержит

 static mappings = {
    "/test"(controller: 'test', action: 'index')
}
  

Затем TestController необходим класс. Однако, если у меня есть имя контроллера TestValueController , тогда сопоставление

 static mappings = {
    "/test"(controller: 'testvalue', action: 'index')
}
  

не работает. Как я могу использовать контроллер с именем camel case? В более общем плане, для контроллера с именем XController какую строку следует использовать в mappings разделе?

Ответ №1:

Это работает нормально, за исключением того, что оно чувствительно к регистру — testvalue должно быть testValue .

Комментарии:

1. Хорошо, но какова связь между именем контроллера и требуемой строкой? Как работает поиск?

2. Это «имя артефакта» — удалите суффикс артефакта (в данном случае «Контроллер») и первую букву в нижнем регистре. Но если имя класса начинается с нескольких прописных букв, не используйте строчные буквы, например, имя для ‘XMLController’ будет ‘XML’, а не ‘xML’, чтобы соответствовать правилам именования JavaBean. Чтобы избежать этого, я обычно избегаю нескольких прописных букв и вызываю контроллер ‘XmlController’