我是struts 2的新手。我创建了一个动作类,它使用ModelDriven
接口将数据从JSP页面插入到bean中。
问题是我有一些非'字符串properties in the bean like
长,
日期`等等
问题是:
当我按下jsp页面中的提交按钮时,我得到一个错误,说它没有找到该特定属性的字符串设置器。
例如,如果我有我的豆
package com.hsms.aseza.enteringApproval
Class EnteringApproval
private Date approvalDate
Date getApprovalDate()
{
return employeeId;
}
void setApprovalDate(Date employeeId)
{
this.employeeId = employeeId;
}
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;)
属性编写字符串setter,有没有解决这个问题?
答案 0 :(得分:0)
确保您已在动作类中初始化了您的bean
Private YourBean bean = new YourBean();
或者你可以在构造函数
确保您的getter和setter是公开的
如果您尝试在jsp页面上输入date
,请使用datepicker
,例如sx:datetimepicker
或sj:datepicker
答案 1 :(得分:0)
尝试使用jsp中的s:date
标记。
编辑:
尝试使用:
<s:textfield key="objEnteringApproval.approvalDate"></s:textfield>
其中objEnteringApproval是控制器中的公共可访问变量。
答案 2 :(得分:0)
我认为您的问题是转换,即从String转换为java.util.Date
对象。此class扩展this,负责从String转换为其他类型,如Long,Double等。如果您检查DefaultTypeConverter的源代码,则不会看到任何转换java.util.Date
或java.sql.Date
。所以我认为你应该做的是为approvalDate
编写一个转换器。我的previous post将指导您完成此过程,您只需编辑代码以满足您的需求。
在您的jsp上,请按照this datepicker示例操作
使用相同的格式,即使用SimpleDateFormat在jsp中显示日期的日期格式,使用转换器的convertFromString
方法进行转换,并返回转换后的java.util.Date
或java.sql.Date
如果您在实施此问题时遇到问题,请与我们联系。