【问题标题】:insert a date field mysql, struts2 spring hibernate插入日期字段mysql,struts2 spring hibernate
【发布时间】:2013-05-16 21:26:08
【问题描述】:

我正在使用 spring hibernate struts2 框架和 MySQL 数据库开发一个项目,当我想添加 Date 类型的字段时遇到问题 不起作用,这意味着当我尝试插入 Date 字段时,它会向我发送此错误:

WARNING: Error setting value
ognl.MethodFailedException: Method "setDATE_PANNE" failed for object model.Panne @ 1d055e2 [java.lang.NoSuchMethodException: setDATE_PANNE ([Ljava.lang.String;)]

/ - Encapsulated exception ------------ \
java.lang.NoSuchMethodException: setDATE_PANNE ([Ljava.lang.String;)

注意:(DATE_PANNE -> 这是日期字段)并且 setDATE_PANNE 是该属性的设置器。 DATE_PANNE 是日期类型

显然,问题在于 struts2 将我的 Date 视为 String 他不应该做的事情。

我不知道如何转换和在哪里?

【问题讨论】:

  • 显示代码。你有日期的二传手吗?你送什么约会?只有 String[] 来自请求,struts2 找不到合适的设置器将显示该错误。如果它可以找到具有适当名称的设置器,“setDATE_PANNE”是一个非常糟糕的名称顺便说一句......它需要一个日期然后它会尝试将字符串转换为日期,这样很好。
  • 至少html参数数据和动作类。
  • 向我们展示代码以及如何编写 Date 的示例。如果检测到格式(例如MM-dd-yyyy),Struts 通常会自动从String 转换为Date
  • 日期无效,这是真的。
  • 这是我的代码:我在数据库中的表 mysql id_panne int(11) id_equipement int(11) description_panne text cause_probable text etat_panne text date_panne date defaillance text effet text moyen_detection text remarque text

标签: mysql spring hibernate struts2 tomcat7


【解决方案1】:

我最近一直在使用 struts 2,并且几次遇到这个 ognl 异常。当您在 JSP 上有一个控件时,似乎会发生这种情况,例如名为“checkBox”的输入复选框,以及来自控制器(java 类,而不是 JSP)的类似名为“setCheckBox()”的方法。不知何故,在幕后,struts 2 或 Ognl 正在产生命名冲突,无法执行正确的方法。只需重命名 JSP 上的控件(从我的示例从“checkBox”到“checkBox1”)或从控制器重命名方法即可解决您的问题。如果我没有详细说明,请告诉我。希望这会有所帮助。

问候,

尼克

【讨论】:

  • 感谢您的回复,我在插入前用这个函数转换了日期:DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); date_panne = formatter.parse(this.date_panne1); panne.setDate_panne(date_panne);它可以工作注意:date_panne1 是 jsp 中的字段。
猜你喜欢
  • 2017-04-13
  • 1970-01-01
  • 2012-01-23
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多