struts保存对象date报String类型不匹配

先贴一下摘抄的异常关键字

[com.opensymphony.xwork2.ognl.OgnlValueStack]-[WARN] Error setting expression ‘datetime‘ with value ‘[Ljava.lang.String;@74448287‘
ognl.MethodFailedException: Method "setDatetime" failed for object [email protected] [java.lang.NoSuchMethodException: com.oss.Merchant.setDatetime([Ljava.lang.String;)]...

Caused by: java.lang.NoSuchMethodException: com.oss.Merchant.setDatetime([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1246)
... 102 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: com.oss.Merchant.setDatetime([Ljava.lang.String;)

再描述一下异常请款。本地,测试,正式三个环境皆没有问题的,外国使用确无法保存,查看日志,发现以上报错。于是百度谷歌了一番,有以下解释:

yyyy-MM-dd格式,在外国不是一个标准的时间显示格式,Struts解释是针对输入,最近似哪种类型而进行转换,这样格式的日期,被误认为是字符串。

网上教授的解决方法是:

1,建一个转换方法,加上配置文件,所有的字符串转日期都经过此工具类转换。

2,将系统的字符编码从LANG="en_US.UTF-8",修改为:LANG="zh_CN.UTF-8"

3,还有说用插件就可以,如My97DatePicker(我的工程本身就是用这个插件的,所以我认为这种解决方法不可取)

4,在jsp页面用java.util.Date先转类型(觉得不会管用)

有兴趣的朋友可以尝试一下。

我选择的是第三种解决方法,定义一个String dateStr,接收表单的输入,然后

String dateStr;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date= sdf.parse(dateStr);
merchant.setDatetime(date);

这种做法比较简便,不影响全局配置,大体上不会引入新错误,就是如果这种日期输入情况比较多,就会造成很多重复代码。

时间: 2024-11-17 06:02:09

struts保存对象date报String类型不匹配的相关文章

jstl foreach标签格式化date,string类型数据

本文要说jsp中date类型格式化和string类型分割处理 首先说date数据格式化 1.jsp中给date类型数据格式化首先需要引入 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 如果后台带过来的数据是date类型,那就好办了,只要像下面这样用fmt标签就可以了,pattern定义时间的格式 <c:forEach items="${list}&quo

$.ajaxFileUpload必须返回Map对象,返回String类型会接收出错,报错Error: Syntax error, unrecognized expression: {...}

<input type="file" name="file1" id="file1" onchange="uploadImg('file1','hidden1')"> <input type="hidden" id="hidden1" /> 异步上传文件方法 function uploadImg(fileid,hiddenid) { $.ajaxFileUploa

计算两个日期之间相差几天(Date类型与String类型互相转换)

一:计算两个日期之间相差几天 1 /** 2 * 3 */ 4 package com.hlcui.date; 5 6 import java.text.ParseException; 7 import java.text.SimpleDateFormat; 8 import java.util.Calendar; 9 import java.util.Date; 10 11 import org.junit.Test; 12 13 /** 14 * @author Administrator

Java中String类型的参数传递问题的解析

一.引入示例 public class StringAsParamOfMethodDemo { public static void main(String[] args) { StringAsParamOfMethodDemo sapm = new StringAsParamOfMethodDemo(); sapm.testA(); } private void testA() { String originalStr = "original"; System.out.println

标准库string类型

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string类型的目的就是满足对字符串的一般应用. 本文地址:http://www.cnblogs.com/archimedes/p/cpp-string.html,转载请注明源地址. 引入头文件#include<string> 1.string对象的定义和初始化 string标准库支持几个构造函数,构造函数是一个特殊成员函数 一下是几种初试化string对象的方式 string s

【C++ Primer每日刷】之三 标准库 string 类型

标准库 string 类型 string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件.如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include <string> using std::string; 1.1 string 对象的定义和初始化 string 标准库支持几个

java动手动脑和课后实验型问题String类型

1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请新开辟一个地址空间,存储的地址空间不一样(对象不同),string类型下hello是同一个对象,其内容和地址都相容. 2. public class StringEquals { /** * @param args the command line arguments */ public stati

java Date和String转换总结

java.util.Date和String类型的转换是非常常用的,现在总结一下: 1. Date转换为String //Date --->String DateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dateNow = new Date(System.currentTimeMillis()); String now = dft.format(dateNow); System.out.printl

Java日期的格式String类型GMT,GST换算成日期Date种类

请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中常常会须要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候仅仅能获取String类型的日期了,这是由于SQLite是无类型的.这样不得不面对将String 类型的日