0

ajaxを使用してSpring g MVCでフォームを送信しています。フォームは動的に生成されています。したがって、フォームで送信されたリクエスト パラメータの名前がわかりません。

単純なフォーム送信 (Ajax ではない) では、次のコードを使用してすべてのパラメーター名とその値を取得していました。

Enumeration requestParameters = request.getParameterNames();
while (requestParameters.hasMoreElements()) {
    String element = (String) requestParameters.nextElement();
    String value = request.getParameter(element);
}

しかし、ajax を使用してフォームを送信すると、同じコードが機能しません。以下は、ajaxを使用してフォームを送信するために使用しているコードです。

$.post("saveEntity", function() {
     alert("SUCCESS");
});

以下は、フォームの送信時に呼び出されるコントローラー クラス メソッドです。

@RequestMapping(method = RequestMethod.POST, value = "/saveEntity")
public @ResponseBody
void saveEntity( HttpServletRequest request) {

    Enumeration requestParameters = request.getParameterNames();

    while (requestParameters.hasMoreElements()) {
        String element = (String) requestParameters.nextElement();
        String value = request.getParameter(element);

        if (element != null && value != null) {
            logger.info("param Name : " + element
                    + " value: " + value);

        }
    }

}

私が間違っていることや何か不足していることはありますか? 助けてください。

4

2 に答える 2

1

サーバーに何が送信されているかを確認することから始めます。firebug net パネルでリクエストを確認するか、フィドラーを使用して、データが適切に送信されていることを確認します。

XMLHttpRequest モニタリング http://getfirebug.com/network

編集

$.post と一緒にデータを送信していません。

$.post({
       url: "saveEntity", 
       data: $('form').serialize(),
       success: function(data) {
                    alert("SUCCESS");
                }
       });

編集 2

$('form') が実際に投稿したいフォームを選択していることを確認してください。そうでない場合は、フォーム ID を指定して正しい jquery セレクターを提供します。正しいフォームが選択されたらalert($('form').serialize());、この形式でデータが返されることを確認するために使用します{elementname1: elementvalue, elementname2: elementvalue2}。そうでない場合は、要素に name 属性が割り当てられていることを確認してください。

于 2011-10-13T10:36:06.273 に答える
0

jqueryを使用している場合は、使用できます

alert($('form').serialize());

クエリ文字列を取得するには

于 2011-10-13T10:24:01.693 に答える