Я пытаюсь использовать переменную пути в контроллере Grails, но не могу этого добиться. Намерение состоит в том, чтобы проверить параметр, отправленный в URL-адрес, который мне нужно сделать обязательным. Я не смог добиться этого с помощью RequestParam, поэтому я переключился на PathVariable, чтобы URL-адрес, отправленный без требуемого параметра, отфильтровывался самим контроллером Grails, а не мной, добавляющим проверки if/else на достоверность.
Итак, я могу проиллюстрировать это следующим образом: Мой URL выглядит примерно так: -
'<appcontext>/<controller>/<action>?<paramName>=<something>'
Теперь, чтобы сделать «paramName» обязательным, я не нахожу никакого способа в Grails (Spring MVC предоставляет аннотацию @RequestParam, которая может позволить мне «требуется» как истина).
Еще одна альтернатива, которую я подумал, заключалась в использовании переменных пути, чтобы «paramName» можно было включить в сам URL. Итак, я попробовал следующее:
'<appcontext>/<controller>/<action>/$paramName'
Для проверки приведенного выше URL-адреса я написал специальное сопоставление, но почему-то оно тоже не работает.
Ниже приведено конкретное сопоставление, которое я написал:
"/<controllerName>/<action>/$paramName" {
controller:<controller to take request>
action:<action to do task>
constraints {
paramName(nullable: false,empty:false, blank: false)
}
}
Я попытался использовать аннотацию spring, такую как @PathVariable и @RequestParam в контроллере, как показано ниже: -
def action(@PathVariable("paramName") String param){
//code goes here
}
"$controller/$action?/$id?"
), возможно, ваши ограничения на самом деле работают правильно, отклоняя это конкретное сопоставление, но вместо этого тот же контроллер вызывается через другое сопоставление. - person Ian Roberts   schedule 02.07.2014nullable: false, empty: false, blank: false
на самом деле ничего не делает. Поскольку сопоставление не включает?
, параметр должен присутствовать, чтобы это сопоставление применялось. Вы можете устранить эти ограничения. - person Jeff Scott Brown   schedule 02.07.2014