Я использую теги grails form
и actionSubmit
, и я получаю ошибку 404 при отправке (я использую Grails 2.3.7).Grails tag actionSubmit вызывает ошибку 404
В целях write.gsp
:
<g:form action="send">
<g:actionSubmit value="test1"/>
<input type="submit" value="test2"/>
</g:form>
и когда представление оказывается, это приводит:
<form method="post" action="/messaging/send">
<input type="submit" value="test1" name="_action_test1">
<input type="submit" value="test2">
</form>
В контроллере:
class MessagingController {
def send = {
//some code here
chain(action:"read")
}
def read = {
// more working code
}
}
Итак, если я нажму на кнопку test2, он работает и отображается представление «read», но если я нажму кнопку test1, я получу:
HTTP Status 404 - /messaging/send
type Status report
message /messaging/send
description The requested resource is not available.
Почему actionSubmit не работает должным образом?
Мои подозрения связаны с автогенерированным name="_action_test1"
, потому что если я удалю подчеркивание (т. Е. Используя firebug), он будет работать.
Но согласно документации Grails использование тегов в порядке:
http://grails.github.io/grails-doc/2.3.7/ref/Tags/actionSubmit.html
Спасибо @vahid, ваш ПОДХОД включения работы действия (но я не понимаю, почему, потому что действие уже определено в виде тега): <г: actionSubmit действие =» send "value =" test1 "/> Я не понимаю, почему в документации сказано, что параметр действия является необязательным ... –
да, это может показаться довольно запутанным, просто подумайте об этом по-другому, если вы объявите actionSubmit, затем в конкретной форме вы можете применить несколько действий, которые работают с той же формой, что и вы, как видите, в виде лесов для редактирования/удаления. Если вам нужна форма, которая сделала одно действие с ее результатами, вы можете использовать \t тогда это будет определено действие формы ... Надеюсь, это имеет смысл –
Vahid