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

您始终可以尝试grails-debug run-app使用 IDE 添加断点。我对PartyClientin的用法有点怀疑setProperties()。我希望调试会有所帮助。调试端口默认为5005.

于 2013-04-17T13:48:38.927 回答
0

只是一个猜测:尝试将您的方法重命名setProperties()为其他名称。

于 2013-04-17T10:30:37.587 回答
0

尝试使用命令对象来呈现receiveClient视图。

顺便说一句,您粘贴的错误消息可能不包含所有相关信息,您的堆栈跟踪相当小......

  • 获得partyClientInstance 后,将其复制到与域属性匹配的命令中。
  • 如果您的视图具有保存模型的表单,则在相关操作中,将命令复制到模型并在需要时保留数据。

希望能帮助到你。

于 2013-04-17T11:59:06.637 回答