2010-08-13 2 views
0

Я создал новое действие под названием «updateWithHistory» на контроллере «X», похожее на обновление. Когда я использую этот код из scaffolded edit.gsp страницы:Grails <g: actionSubmit> перенаправляет на GSP вместо действия

<span class="button"><g:actionSubmit class="save" action="updateWithHistory" value="${message(code: 'default.button.updateWithHistory.label', default: 'Persist')}" /></span>

Я получаю сообщение об ошибке 404:

The requested resource (/GPECAN/WEB-INF/grails-app/views/X/updateWithHistory.jsp) is not available.

Я не знаю, почему Grails ищет зрения и не для действия. Мне не нужно представление для этого действия, потому что оно перенаправляется на существующие действия (список, редактирование и т. Д.).

Это не происходит с действиями по умолчанию, такими как «обновление». Есть идеи?

(Конечно, если бы я создать представление под названием «updateWithHistory.gsp», вид показан, но действие никогда не выполняется ... Я в отчаянии)

+0

Можете ли вы дать нам код для 'метода updateWithHistory' в' контроллера x'? – Molske

ответ

0

ОК, я просто глуп. Это была ошибка в моем контроллере; ситуация с ошибкой происходила, но не было определенного представления для ее обработки, поэтому контроллер попытался перенаправить на неинициализированное представление по умолчанию.

К сожалению много для моей глупости и спасибо за вашу помощь

1

Есть два пути решения вашей проблемы, в зависимости от того, чего вы хотите достичь. Первое, что вы должны знать, цитата из документации:

Also note that this tag relies on the multipart resolver to be able to inspect parameters included with mulitpart requests. If you disable the resolver by setting grails.disableCommonsMultipart to true in Config.groovy, actionSubmit will not work.

Так два решения:

  1. Set 'контроллер' атрибут в g:form tag
  2. Создать отображение URL в described here

PS Если вы хотите увидеть какой-либо «рендерируемый» результат браузером, вы должны использовать динамический динамик метод:

1

Возможно, у вас есть ошибка в контроллере. После вашего действия вам понадобится render что-то или redirect. Взгляните на код контроллера леса.

Попробуйте добавить ниже в конец вашего updateWithHistory action.

render(view: "edit", model: [yourDomainInstance: yourDomainInstance]) 
Смежные вопросы