0

我是 struts 2 的新手。我创建了一个操作类,它使用ModelDriven接口将 JSP 页面中的数据插入到 bean 中。

问题是我有一些非“字符串properties in the bean like,日期”......等问题是:当我在 jsp 页面中按下提交按钮时,我收到一个错误,说它没有找到该特定属性的字符串设置器。例如,如果我的 bean 中有

   package com.hsms.aseza.enteringApproval

   Class EnteringApproval

       private Date approvalDate

      Date getApprovalDate()
      {
         return employeeId;
      }

     void setApprovalDate(Date employeeId)
     {
         this.employeeId = employeeId;
     }

当执行模型驱动的动作类时,它会触发运行时异常

    java.lang.NoSuchMethodException:  com.hsms.aseza.enteringApproval.EnteringApproval.setApprovalDate([Ljava.lang.String;)

Date有没有办法在不为我的属性编写字符串设置器的情况下解决这个问题?

4

3 回答 3

0
  1. 确保你已经在你的动作类中初始化了你的 bean

    Private YourBean bean = new YourBean();
    

    或者你可以在构造函数中拥有它

  2. 确保你的 getter 和 setter 是公开的

  3. 如果您尝试date在 jsp 页面上键入,请使用datepickeregsx:datetimepickersj:datepicker

于 2012-07-10T06:10:54.713 回答
0

尝试s:date在你的jsp中使用标签。

编辑:

尝试使用:

<s:textfield key="objEnteringApproval.approvalDate"></s:textfield>

其中 objEnteringApproval 是控制器中的公共可访问变量。

于 2012-07-10T06:17:40.797 回答
0

我认为您的问题是转换,即从字符串到java.util.Date对象的转换。这个扩展了这个类,它负责从 String 转换为其他类型,如 Long、Double 等。如果您检查DefaultTypeConverterjava.util.Date的源代码,您将看不到任何一个or的任何转换java.sql.Date。所以我认为你应该做的是为approvalDate. 我之前关于此的帖子将指导您完成该过程,您所需要的只是编辑代码以满足您的需求。

在您的 jsp 上,按照这个 datepicker示例使用相同的格式,即日期格式,用于在您的 jsp 中使用SimpleDateFormat显示您的日期,以在转换器的convertFromString方法中进行转换并返回转换后的java.util.Dateor java.sql.Date

如果您在执行此操作时遇到问题,请告诉我。

于 2012-07-10T07:45:43.490 回答