0

隠し入力のソート数を含むフォームを作成しています。それをSpring MVCサーバーに渡したいと思います。作成されたフォームはそのようなものになります (常に 3 つの入力タイプがあるとは限りません..それよりも多くても少なくてもかまいません。ユーザーはこの値を設定します):

    <form id="submitCoordenadas" method="post" action="adicionaCorredores">
    <button type="submit" id="saveCoordenadas" class="btn" value="Save">Enviar</button>
    <input type="hidden" name="corredor" id="linha1" val="[Linha] Inicio: [1;1] Fim: [104;114]">
    <input type="hidden" name="corredor" id="linha2" val="[Linha] Inicio: [113;1] Fim: [1;144]">
    <input type="hidden" name="corredor" id="linha3" val="[Linha] Inicio: [113;1] Fim: [1;144]">
</form> 

私がこれまでに試したことは、文字列のリストを持つオブジェクトを作成することです:

public class Corredores {

    List<String> corredor;

........ (getters and setters)
}

そして私のSpring MVCサーバー:

@RequestMapping("adicionaCorredores")
    public String adicionaCorredores(Corredores valores) {
        System.out.println("Valores: " + valores.getCorredor().get(0));
        return "";
    }

「valores」パラメーターで何も受信していません。

どうすればいいですか?フォームに不確定な数の入力があり、それを Spring MVC サーバーで受け取るにはどうすればよいですか?

4

1 に答える 1

-1

私は自分の問題を解決しました.. まず第一に、私は自分のフォームに間違いを犯していました. 属性「値」を挿入する代わりに、「val」を使用していました。今、私のフォームは次のようになります。

<form id="submitCoordenadas" method="post" action="adicionaCorredores">
    <button type="submit" id="saveCoordenadas" class="btn" value="Save">Enviar</button>
    <input type="hidden" name="corredor" id="linha1" val="[Linha] Inicio: [1;1] Fim: [104;114]">
    <input type="hidden" name="corredor" id="linha2" val="[Linha] Inicio: [113;1] Fim: [1;144]">
    <input type="hidden" name="corredor" id="linha3" val="[Linha] Inicio: [113;1] Fim: [1;144]">
</form> 

私が行ったもう1つのことは、コントローラーを次のように変更することです。

@RequestMapping("adicionaCorredores")
    public String adicionaCorredores(@RequestParam("corredor") String[] corredor) {

        for(int i=0; i < corredor.length; i++) {
            System.out.println("Valores: " + corredor[i]);
        }

        return "";
    }

オブジェクト「Corredores」を受け取る代わりに、文字列配列を受け取るだけです。この文字列配列の名前は、フォームで指定された名前と同じである必要があることに注意してください

それが他の誰かに役立つことを願っています!

于 2013-03-31T16:36:29.767 に答える