0

私はgrailsを初めて使用します。コントローラーでモデルオブジェクトを処理した後、リダイレクトしてgspをレンダリングしようとしていますが、次のエラーが発生するたびに:

Line | Method
->> 195 | doFilter in PageFragmentCachingFilter.java
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    63 | doFilter in AbstractFilter.java
|   886 | runTask  in java.util.concurrent.ThreadPoolExecutor$Worker
|   908 | run      in     ''
^   662 | run . .  in java.lang.Thread

ドメイン (setProperties メソッド) を処理しない場合、つまり for ループを削除した場合、別の gsp にリダイレクトできます。

以下は私のコントローラーコードです:

def receiveClient() {
        PartyClient partyClientInstance=PartyClient.get(params.client1Id)
        for (String key : params.keySet()) {
            if(key.endsWith("Checked")){
                setProperties(key,partyClientInstance)
            }
        }
        render (view: "receiveClient",model: [partyClientInstance: partyClientInstance])
    }

def setProperties(String key,PartyClient partyClient){
    int i =key.indexOf("Checked");
    String property=key.substring(0, i);

    if(property.equals("firstName")){
        partyClient.setFirstName(params[key])
    }else if(property.equals("lastName")){
        partyClient.setLastName(params[key])
    }else if(property.equals("middleName")){
        partyClient.setMiddleName(params[key])
    }else if(property.equals("title")){
        partyClient.setTitle(params[key])
    }
}

前もって感謝します。

4

3 に答える 3

0

コマンド オブジェクトを使用してreceiveClientビューを表示してみてください。

ちなみに、貼り付けたエラーメッセージには関連するすべての情報が含まれていない可能性があり、スタックトレースはかなり小さいです...

  • partyClientInstanceを取得したら、ドメイン プロパティに一致するコマンド内にコピーします。
  • ビューにモデルを保存するフォームがある場合は、関連するアクションでコマンドをモデルにコピーし、必要に応じてデータを永続化します。

それが役に立てば幸い。

于 2013-04-17T11:59:06.637 に答える
0

推測ですが、メソッドの名前setProperties()を別のものに変更してみてください。

于 2013-04-17T10:30:37.587 に答える
0

いつでもgrails-debug run-appIDE を使用してブレークポイントを追加できます。PartyClientinの使用については少し懐疑的ですsetProperties()。デバッグが役立つことを願っています。デフォルトのデバッグ ポートは5005.

于 2013-04-17T13:48:38.927 に答える