Grailsперенаправляет на GSP вместо действия - PullRequest
0 голосов
/ 13 августа 2010

Я создал новое действие под названием «updateWithHistory» на контроллере «X», похожее на обновление. Когда я использую этот код со страницы edit.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", оно отображается, но действие не выполняется ... Я в отчаянии)

Ответы [ 3 ]

1 голос
/ 13 августа 2010

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

Попробуйте добавить следующее в конце вашего updateWithHistory действия.

render(view: "edit", model: [yourDomainInstance: yourDomainInstance])
1 голос
/ 13 августа 2010

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

Также обратите внимание, что этот тег опирается на многочастный распознаватель, чтобы иметь возможность проверять параметры, включенные в многочастные запросы.Если вы отключите распознаватель, установив для grails.disableCommonsMultipart значение true в Config.groovy, actionSubmit не будет работать.

Итак, два решения:

  1. Установить атрибут 'controller' в g: тег формы
  2. Создание сопоставления URL-адреса как , описанное здесь

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

0 голосов
/ 14 августа 2010

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

Извините за мою глупость и спасибо за вашу помощь

...