我正在开发一个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,但对我来说没什么用。
对我来说最奇怪的是,在我收到此错误后,每次尝试进入现有实体时都会出现相同的错误,但如果我重新启动应用程序,则可以输入现有实体而不会出现任何错误。
谢谢!
答案 0 :(得分:0)
好吧,事实证明我被Struts2错误消息误导了...框架正确地尝试在我的操作中设置参数,但我有一个异常抛出
(...some other stuff...)
部分。我浏览了整个日志文件,最后找到了真正的问题。
无论如何,谢谢你。