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

#grails #controllers

#grails #контроллеры

Вопрос:

У меня есть что-то подобное в моем контроллере:

 class houseController = {

...
code
...

if(params.answer == null)
redirect(action:'xxx')

...
code
...

}
  

Я сомневаюсь, что перенаправление в середине контроллера. Требуется ли какой-либо ‘return’ или что-то подобное из-за того, что он не находится в конце контроллера? Или после выполнения перенаправления весь последующий код забывается и не сохраняется в памяти? Я хочу сказать, что я не хочу тратить бесполезные ресурсы на плохо написанный код.

Ответ №1:

Любой код, который возникает после redirect , будет выполнен, но вы получите исключение, если попытаетесь выполнить запись в ответ после выполнения перенаправления.

На практике обычно вы не хотите ничего выполнять в текущем действии после выполнения redirect , поэтому я бы переписал приведенный выше код следующим образом:

 if (params.answer == null)
  redirect(action:'xxx')
  return
}

...
code
---
  

или в качестве альтернативы:

 if (params.answer == null)
  redirect(action:'xxx')

} else {
  ...
  code
  ---
}