Struts2 String []参数而不是Long

时间:2013-05-14 10:48:24

标签: java struts2

我正在开发一个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作为一个String数组处理......我看了this question,但对我来说没什么用。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

(...some other stuff...) 

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

无论如何,谢谢你。