0

さまざまなタイプの投稿リクエストを処理できるコントローラーを作成しています。

その結果、リクエストでキーと値のペアの数を取得し、それらを何らかの形のオブジェクト (リストまたはある種のイテレータ) として取得して、それらをループしてキーと値を取得できるようにしたいと考えています。そしてそれらを適切に処理します。

次のようなもの:

def sz = request.size  // may or may not be necessary, but would still like to know how
def keyValPairs = request.listOfPosts
for (def keyVal : keyValPairs) {
    def key = keyVal.getKey();
    def val = keyVal.getVal();
    doSomething(key, val);
}

ありがとうございました

4

2 に答える 2

1

ここで言及すべきことがいくつかあります。まず第一に、すべては POST データのエンコーディングに依存します。たとえば、データを JSON 形式で送信する場合、それをマップに変換することは、データを JSON 形式で送信する場合とは異なりますContent-Type: application/x-www-form-urlencoded(データを HTML フォームから送信する場合)。

後者が当てはまる場合、必要な唯一のことはgetParameterMap()from plain oldを使用することですServletRequest。Grails はこのメソッドをオーバーライドして、ルーティングとうまく連携するデータ構造、つまりGrailsParameterMapを提供するだけです。

于 2013-02-02T13:24:02.413 に答える
0

したがって、ソリューションの例は次のようになります。

def controllerFunction() {

    def enu = request.getParameterMap();
    String msg = "";

    for (def obj : enu) {
        msg += "\n<br/> Object key: " + obj.key;
        msg += "\n<br/> Object value: " + obj.value[0]; // [0] seems to remove some problematic square brackets that wrap around the value
        msg += "\n<br/> ";                  
    }

    render rtn; 
}
于 2013-02-04T12:14:52.380 に答える