2011-10-18 7 views
0

私はSpringのWebアプリケーションを書く途中です。私は、管理者がいくつかの基本的なユーザーの詳細を変更できるようにするフォームを作成しようとしています。しかし、フォームの提出時に、私はクライアントから送られたリクエストが "Syntactically Incorrect"であると言ってHTTP 400エラーを出し続けます。それは実際の有用な情報を提供していないと私は本当にすべてを見渡して、私が間違って何ができるか分からない。ここではJSPは次のとおりです。Springのフォームを動作させるのに助けが必要です

<%@ 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); 
} 

とにかく:フォームは、すべての値がフォームに正しくマップされていると完全に表示しても、私はここに問題があることを知りません私は知っている。私は一日中遭遇しているエラーをすべてうまく解決していますが、この問題は何も見えません。ありがとう。

+1

sf:formタグにはアクションがありません。私はあなたの "admin/editUser"をフォームのアクション属性にドロップする必要があると思います。 – jeff

答えて

0

答えは、皆がここに残したものの組み合わせです。通常Springの場合、フォームにアクションメソッドは必要ありませんが、この場合は、フォームの読み込みの仕方によって、Springでロードされていたアクションを上書きする必要があります。

また、@RequestParam( "user")ビットを削除すると、400エラーの問題が解決されました。今回私は春のフォームタグを使用していたので、すべてがきちんと結びついていたので、私はRequestParamビットが必要ないと思います。明らかに、私はまだそれらが必要であるかどうかを最もよく理解していません。

とにかく、私は人々の答えをマークアップしましたが、技術的には完全な解決策ではなかったので、私はこれを投稿しました。皆さんありがとう。

1

@reqiestParamを削除しようとすると、submitEditUserメソッドが見つかりません。

関連する問題