java - Struts2 String[] 参数而不是 Long

标签 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 作为字符串数组处理...我查看了 this question ,但这对我没有帮助。

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

谢谢!

最佳答案

好吧,事实证明我被 Struts2 错误消息误导了...框架正确地尝试在我的操作中设置参数,但我遇到了由

(...some other stuff...) 

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

无论如何,谢谢你。

关于java - Struts2 String[] 参数而不是 Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541199/

相关文章:

struts2 - 是否可以使用 struts 或 JSTL 标签获取全局异常根本原因?

java - 不幸的是应用程序已停止 Android 模拟器

Java UOM java.lang.NoSuchFieldError : ONE

java - Tomcat 新安装到 Eclipse 的问题

java - 显示标签中的 Struts2 属性标签

java - 显示标签替代品

java - 将 JasperReport 导出为 PDF 输出流?

java - Gmail 用户名和密码验证

java - 我应该如何初始化类 freemarker.template.Configuration?

java - struts2 on tomcat项目显示空白页,使用Fiddler显示404错误