如果改Bbs.hbm.xml,Bbs.java的dt为java.util.Date则
java.lang.IllegalArgumentException:
Cannot invoke com.test.spring.Bbs.setDt - argument type mismatch
java.lang.IllegalArgumentException:
Cannot invoke com.test.spring.Bbs.setDt - argument type mismatch
解决方案 »
- Java SSLSocket中的isClosed()与closed的值有什么区别?
- FtpClient 重命名与删除文件失败 纠结中痛苦
- httpclient post是否适合高并发传输数据 ?谢谢!
- Servlet显示中文的问题求教
- word,excel文件的导入导出
- 替换字符串问题 请高手来看看
- jsf中 点击 commandLink总是在自身窗口出现新窗口,如何 _bank一个窗口呢?
- jb2006+jboss4.0.2开发EJB出错`
- JDBC里面PreparedStatement类的构造方法里面的参数IN是什么意思?怎么用?
- InitialContext()中的参数问题?
- 求助:Struts中的javascript问题!
- 服务器调查 看谁见识多
Cannot invoke com.test.spring.Bbs.setDt - argument type mismatch
应该跟BeanUtils无关吧
java.lang.IllegalArgumentException:
Cannot invoke com.test.spring.Bbs.setDt - argument type mismatch
应该跟BeanUtils无关吧
但这个异常是copyProperties抛出来的
yyyy-mm-dd (斜杠/ 就会产生异常org.apache.commons.beanutils.ConversionException)而且不能为空,继续处理中.........
当然不一样了
1.ActionForm:
String dt;
2.Bbs.hbm.xml:
java.sql.Date
3.Bbs.java:
java.sql.Date dt;
4.ActionForm->Bean:
放弃了原来那个BeanUtils.copyProperties(dst,src); 改用如下方法:
/**
*转换字符为java.sql.Date
*@param str 字符型日期数据
*@param format 格式化模式
*@return 返回日期
*/
public static java.sql.Date formatSqlDate(String str, String format) {
Date date =null;
try {
DateFormat df = new SimpleDateFormat(format);
date = (Date) df.parse(formatString(str).replaceAll("-", "/"));
} catch (Exception e) {
}
if(date!=null){
long t = date.getTime();
return new java.sql.Date(t);
}else
return null;
}/**
*转换ActionForm为Bean
*@param src 源form
*@param dst 目标bean
*@param field[] 要替换的日期字段列表
*@return 返回转换后的bean
*/
public static Object convertObjectForStringToSqlDate(Object src,Object dst,String field[]){
String fieldName=",";
for(int i=0;i<field.length;i++)
fieldName+=field[i]+",";
if (src == null) {
dst = null;
} else {
PropertyDescriptor origDescriptors[] =PropertyUtils.getPropertyDescriptors(src);
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
if (PropertyUtils.isWriteable(dst, name))
try {
String dateValue =(String)PropertyUtils.getSimpleProperty(src, name);
if ((","+name+",").indexOf(fieldName)>=0)
BeanUtils.setProperty(dst,name,formatSqlDate(dateValue,"yyyy/MM/dd"));
else
PropertyUtils.setSimpleProperty(dst,name,dateValue);
} catch (Exception e) {
}
}
}
return dst;
}欢迎改善意见!