Я немного поболтал с этим вчера и потерпел неудачу с треском. Я хочу, чтобы преобразовать:Изменить Grails REST формат/контроллер/<id>/<action>
"/$controller/$action?/$id?"
Для
#in psudo
"/$controller/$id?/$action?"
#ideal regex
"\/(\w+)(\/\d+)?(\/\w+)?"
Наиболее очевидным способом не удалось "/$controller/$action?/$id?"
Я могу написать регулярное выражение, чтобы сделать это, но у меня возникают проблемы, чтобы найти способ использования верно regexs (я нашел RegexUrlMapping, но не смог узнать, как его использовать), а также не может найти документацию о том, как назначить группу переменной.
Мой вопрос 2 часть:
- Как я определяю URL ресурс с истинным регулярным выражением.
- Как связать «группу» с переменной. Другими словами, если я определяю регулярное выражение, как привязать его к переменной, как $ controller, $ id, $ action
Я также хотел бы иметь возможность поддерживать .json notation/user/id. JSON
Другие вещи, я пытался, которые я думал, что будет работать:
"/$controller$id?$action?"{
constraints {
controller(matches:/\w+/)
id(matches:/\/\d+/)
action(matches:/\/\w+/)
}
}
также пытался:
"/$controller/$id?/$action?"{
constraints {
controller(matches:/\w+/)
id(matches:/\d+/)
action(matches:/\w+/)
}
}
@Nix Если у вас есть сопоставление '' $ controller/$ id?/$ Action ", то'/user/list' не будет работать (ну, он не будет устанавливать параметр 'action', чтобы он вызывать любое действие по умолчанию «UserController», передавая «список» как значение параметра «id»). –
Я до сих пор считаю это абсолютно шокирующим ... как для обратных отображений ... Не удалось добавить фиктивное сопоставление ('$ controller/$ id?/$ Action?'), Чтобы иметь возможность использовать обратные сопоставления? – Nix
@Nix Я добавил еще одну возможность, если вы хотите попробовать. –