Oracle 中字段用的是Date 类型
实体类用的也是Date 类型
但jsp 页面中用的是文本框 填写日期字符串
报以下 错误:
java.lang.IllegalArgumentException

解决方案 »

  1.   

    文本框中得到的默认在数据类型是String类型
    要转化成日期类型吧
    相关转换函数可以查查API文档或GOOGLE搜索一下 很多 
      

  2.   

    public void setDate(String date) {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
    try {
    this.date = sf.parse(date);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }我想这样写 但是 查询数据是 又不能为对象赋值了
      

  3.   

    你这问的什么问题 是不是直接把文本框的值赋给了后台的date类型的变量,
    如果是的话那就将VO中的定义成string 接受 完了以后至于查询的问题 oracle中可以使用 oracle中日期函数转换 类似于 convert(date,'12/12/09') sybase和str_to_date('12/12/09','%M/%d/%y')mysql
      

  4.   


    我用的是struts 我不知道这种问题 怎么解决 没有思路action 中的代码:public ActionForward doRelease(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse respons) {
    ConnForm connForm =(ConnForm )form;
    System.out.println(connForm.getConn().getDate());jsp 页面中的代码:<form action="conn.do?operate=doRelease" method="post">
    时&nbsp;&nbsp;间:
    <input type="text"  name="conn.date" readonly="readonly" onclick="SelectDate(this,'yyyy-MM-dd')" id="cdate" />
      

  5.   

     直接将字符串改为日期类型再放入Form中 Date date=valueOf(String s);
      
     直接在SQL语句中用 to_date(string s)  插入到表中!!
      

  6.   

    实体类用sql.Date包
    String datetime=request.getParameter(time);    
    try {

    String title = request.getParameter("title");
    DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
    Date startd = fmt.parse(datetime);
    java.sql.Date startdate = new java.sql.Date(startd.getTime());
    String content = request.getParameter("content");
    Notice note = new Notice(title, startdate, content);
    IntroduceService itds = new IntroduceService();
    itds.addnote(note);
    } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  7.   


    能不能讲一下 具体的做法。怎么将String 转换成Date 类型再放入form 中。
      

  8.   


    你的做法  我又看不懂, 我用的是 Struts 来处理表单,用的是hibernate 操作数据库。好像用不上request.getParameter(time); 
      

  9.   

    sql 2000中可以这样转换,oracle中不知道可不可以
    convert(varchar(10), date字段, 120);  120指的是日期格式为1900-01-01这种格式
      

  10.   

    action中取到字符串t_date="2009-11-13",select可以这么写:
    select * from tbl1 where t_date = to_date(t_date,'yyyy-MM-dd');
      

  11.   

    上面搞反了
    action中取到字符串s_date="2009-11-13",select可以这么写:
    select * from tbl1 where s_date = to_char(t_date,'yyyy-MM-dd');
      

  12.   

    怎么提取action 中的字符串啊public ActionForward doRelease(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse respons) { 
    ConnForm connForm =(ConnForm )form; 
    System.out.println(connForm.getConn().getDate()); 以上做法为空
      

  13.   


    不是插入数据库出错 是有关hibernate 和实体类映射相关 实体类不知道用什么数据类型来对应数据库中的date 类型
      

  14.   

    写两个setDate方法。
    public void setDate(String date) { }
    public void setDate(Date date) { }
      

  15.   

    既然是hibernate 
    select * from tbl1 where t_date =?
    这个?应该可以用Date对象赋值啊!Date对象也就是你从页面取来的String==》转换来的啊