Мой вопрос похож на следующий пост Отображение вида другого контроллера
У меня есть TestConfigController. Мой вопрос: что я могу сделать в случае сбоя проверки и хочу отобразить контроллер: test and view: редактировать вместо контроллера: testCOnfig и view: edit
def save() {
def testConfigInstance = new TestConfig(params)
if (!testConfigInstance.save(flush: true)) {
/ * Вместо просмотра: "edit" я хочу view: "/ test / edit" которыйне работает * /
render(view:"edit", model: [testConfigInstance: testConfigInstance],id:params.test.id)
return
}
println "+++++++++++++++++++++++++"
flash.message = message(code: 'Data successfully saved', args: [message(code: 'testConfig.label', default: 'Successfully saved')])
redirect(action: "edit", controller:"test", id:params.test.id)
}
Есть указатели?Я уже изучил перенаправление grails , которое не имеет параметра "модель" и, следовательно, не может передать ошибки проверки представлению. Также я рассмотрел рендер grails , который не имеетпараметр контроллера, так что я могу вернуться к другому контроллеру!Пожалуйста, дайте мне знать, если требуется более подробная информация / код
РЕДАКТИРОВАТЬ Следующее происходит при использовании одной из двух вещей
render(view:"/test/edit", model: [testConfigInstance: testConfigInstance],id:params['test.id'])
Приведенный выше код отображает страницу / тест/ edit без ссылки на testid, в итоге выдает ошибку, говоря, что «test.id» не может быть нулевым .. (означает его рендеринг / test / edit, а не / test / edit / 1)
render(view:"/test/edit/"+params['test.id'], model: [testConfigInstance: testConfigInstance],id:params['test.id'])
КодПриведенное выше приводит к следующей ошибке
The requested resource (/EasyTha/WEB-INF/grails-app/views/test/edit/1.jsp) is not available.
Любой из приведенных выше кодов не отображает просто «/ test / edit» без идентификатора в конце, что в итоге приводит к ошибке, говоря, что test.id не может быть нулевым.