我正在編寫春季web應用程序,並且事情進展順利。我試圖編寫一個表單,允許管理員更改一些基本的用戶詳細信息。但是,在提交表單時,我不斷收到一個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);
}
無論如何,如果任何人有任何想法,請讓我知道。我已經成功地解決了所有我一整天都遇到的錯誤,但我似乎無法看到這個問題。謝謝。
您的sf:表格標籤沒有任何操作。我認爲你需要在表單的action屬性中放置你的「admin/editUser」。 – jeff