我正在开发一个 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 作为字符串数组处理......我看过这个问题,但这对我没有帮助。
对我来说最奇怪的是,在收到此错误后,每次尝试输入现有实体时都会遇到相同的错误,但如果我重新启动应用程序,我可以输入现有实体而不会出现任何错误。
谢谢!