1

我正在开发一个 struts2 应用程序(Struts 2.3.14,java 1.7,在 Tomee plus 1.5.1 服务器上)。

我有一堆“细节”动作,它们都包含以下代码:

private Long modelId;

public Long getModelId() {
    return modelId;
}

public void setModelId(Long modelId) throws Exception {
    this.modelId = modelId;
    (...some other stuff...)
}

在每个操作中,我还有一个用于保存数据的“持久”操作,例如:

@Action(value = "persistEntity", results = {
    @Result(name = "success",        location = "entityDetail", 
            type = "redirectAction", params   = {"modelId", "%{modelId}"})
})
public String persist() throws Exception {
    this.modelId = [save method invocation]

    return "success";
}

保存后,我尝试将用户重定向回详细信息页面,但出现以下错误:

Unexpected Exception caught setting 'modelId' on 'class classpath.DetailAction': 
Error setting expression 'modelId' with value '[Ljava.lang.String;@43b5d2fe'

所以,看起来 Struts 正在将我的 masterId 作为字符串数组处理......我看过这个问题,但这对我没有帮助。

对我来说最奇怪的是,在收到此错误后,每次尝试输入现有实体时都会遇到相同的错误,但如果我重新启动应用程序,我可以输入现有实体而不会出现任何错误。

谢谢!

4

1 回答 1

0

好吧,事实证明我被 Struts2 错误消息误导了......框架正在正确地尝试在我的操作中设置参数,但是我抛出了一个异常

(...some other stuff...) 

部分。我浏览了整个日志文件,终于找到了真正的问题。

还是非常感谢。

于 2013-05-14T13:35:03.483 回答