#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
---
}