Я нахожусь в процессе написания веб-приложения Spring, и дела шли хорошо. Я пытаюсь написать форму, которая позволяет администратору изменять некоторые основные данные пользователя. Однако при отправке формы я получаю сообщение об ошибке HTTP 400, в котором говорится, что запрос, отправленный клиентом, был «синтаксически неверным». Это не предлагает никакой полезной информации, хотя я действительно просмотрел все и понятия не имею, что я могу делать неправильно. Вот JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
<div align="center">
<s:url value="/admin/access" var="access_url" />
<sf:form method="POST" modelAttribute="user" dojoType="dijit.form.Form">
<script type="dojo/method" event="onSubmit">
if (!this.validate()) {
return false;
}
return true;
</script>
<table>
<tr>
<td align="right">Username: </td>
<td>
<sf:input path="username" dojoType="dijit.form.ValidationTextBox" trim="true" required="true"/>
</td>
</tr>
<tr>
<td align="right">Password: </td>
<td>
<sf:input path="password" type="password" dojoType="dijit.form.ValidationTextBox" required="true"/>
</td>
</tr>
<tr>
<td align="right">Enabled: </td>
<td>
Yes<sf:radiobutton path="enabled" value="true" dojoType="dijit.form.RadioButton"/>
No<sf:radiobutton path="enabled" value="false" dojoType="dijit.form.RadioButton"/>
</td>
</tr>
<tr>
<td align="right">Admin: </td>
<td>
Yes<sf:radiobutton path="isAdmin" value="true" dojoType="dijit.form.RadioButton"/>
No<sf:radiobutton path="isAdmin" value="false" dojoType="dijit.form.RadioButton"/>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<button dojoType="dijit.form.Button" type="submit">Submit</button>
</td>
</tr>
</table>
</sf:form>
</div>
Вот метод, который в конечном итоге будет вызываться в контроллере, хотя он не зашёл так далеко:
@RequestMapping(value="/admin/editUser", method=RequestMethod.POST)
public String submitEditUser(@RequestParam("user") NFIUser nfiUser) {
А вот отображение GET с того же контроллера, хотя форма отлично отображается, и все значения правильно отображаются в форме, поэтому я не знаю, что здесь есть какие-либо проблемы:
@RequestMapping(value="/admin/editUser", method=RequestMethod.GET)
public void showEditUser(Model model, @RequestParam("username") String username) {
....
model.addAttribute("user", user);
}
В любом случае, если у кого-то есть мысли, пожалуйста, дайте мне знать. Я успешно исправляю ошибки, с которыми сталкиваюсь весь день, но, похоже, не вижу проблем с этим. Благодаря.