Я учусь использовать Grails и столкнулся с непонятной ситуацией при передаче простой формы.
Я создал контроллер под названием 'add' (есть исходный файл AddController.groovy и соответствующее представление add / index.gsp) и определил очень разреженное действие 'process', которое в настоящее время отображает небольшой объем HTML, чтобы убедиться, что действие вызывается.
URL-адресом действия процесса на контроллере добавления является (что неудивительно) http://localhost:8080/frontend/add/process/.
Я хотел бы отправить очень простую форму в действие процесса в качестве первого шага к интеграции с некоторыми существующими библиотеками Java.
Отправка запроса GET на http://localhost:8080/frontend/add/process/ вызывает вызываемое действие процесса и браузер для отображения соответствующего простого HTML-содержимого.
Отправка запроса POST на http://localhost:8080/frontend/add/process/ возвращает ошибка HTTP 404.
Я понимаю, что мне не хватает какого-то фундаментального дополнения к моему приложению, так как вышеуказанное действие работает как с запросами GET, так и с запросами POST. Я предполагал, что по умолчанию тип запроса не имеет значения.
Я был бы очень рад на этом этапе, если бы смог отправить запрос POST к соответствующему действию и получить некоторую разметку, просто чтобы продемонстрировать, что все работает.
Какой фундаментально важный элемент головоломки мне не хватает?
контроллеры / интерфейс / AddController.groovy:
package frontend
class AddController {
def index = { }
def process = {
render "<h1>process action being performed</h1>"
}
}
просмотров / добавить / index.gsp
<html>
<head>
<title>Test View for index action</title>
<meta name="layout" content="main" />
</head>
<body>
<g:form controller="add" action="process">
<label for="title">Title:</label>
<g:textField name="title" id="title" />
<label for="content">Content:</label>
<g:textArea name="content" id="content" />
<g:actionSubmit value="Add" />
</g:form>
</body>
</html>