Я учусь использовать Grails и столкнулся с ситуацией, которую я не понимаю при передаче того, что должно быть простой отправкой формы.
Я создал контроллер под названием «add» (естьДобавьте исходный файл AddController.groovy и соответствующее представление add / index.gsp) и определили очень разреженное действие «процесс», которое в настоящее время отображает небольшой объем 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.
Я понимаю, что мне не хватает фундаментального дополнения к моему приложению, так что вышеуказанное действие работает с bдругие запросы GET и POST.Я предполагал, что по умолчанию тип запроса не будет иметь значения.
Я был бы очень рад на этом этапе, если бы я мог отправить запрос POST соответствующему действию и получить некоторую разметку только для демонстрации того, что все работает.
Какая основная часть головоломки мне не хватает?
controllers / frontend / AddController.groovy:
package frontend
class AddController {
def index = { }
def process = {
render "<h1>process action being performed</h1>"
}
}
views / add / 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>