Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > webwork2不能正确截获由js形成的日期属性
【标  题】:webwork2不能正确截获由js形成的日期属性
【关键字】:webwork2,js
【来  源】:http://blog.csdn.net/sdlcn/archive/2006/08/30/1142513.aspx

webwork2不能正确截获由js形成的日期属性

Your Ad Here

 解决webwork2中不能正确截获由js形成的日期属性问题
[方法]将PeriodView日期类型属性设为String,在页面用正则表达式判断,params和model-driven拦截器

拦截属性(String类型)后再转变为Date类型设置到Period对象中,具体实现:

[1]在页面写js

<script language="javascript" type="text/javascript">
      function strDateTime(id) {
    var str = document.getElementById(id).value;
   var reg = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
        var r = str.match(reg); 
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()== r[7])
   }
  
   function displayInfo(){
    alert("时间格式错误,请仿照这样的格式输入:2006-8-20 12:12:00");
   }
  
   function validateForm(){
    if (!strDateTime("initiatedEndDate")){
   displayInfo();
   document.getElementById("initiatedEndDate").focus();
   return false;
  }
   }
</script>

[2]在action 中写:

 public String execute() {

  period = new Period();

  period.setDescription("");

  period.setInitiatedEndDate(getDate(model.getInitiatedEndDate()));

  period.setPurchasedEndDate(getDate(model.getPurchasedEndDate()));

  period.setSerialNum(model.getSerialNum());

  period.setUploadEndDate(getDate(model.getUploadEndDate()));
  
  period.setDrawingLotDate(getDate(model.getDrawingLotDate()));

  period.setCat(lotCatManager.get(model.getCatId()));

  periodManager.insertPeriod(period);

  return SUCCESS;
 }
 
 private Date getDate(String strDate){
  Date date = DateUtil.toCalendar(strDate).getTime();
  if (date ==null) return new Date();
  return date;
 }

其中的DateUtil.toCalendar(String strDate)方法:

 /**
  * 把一个日期字符串转换成Calendar形式
  *
  * @param strDate
  * @return
  */

 public static final SimpleDateFormat dateTimeFormatter = new SimpleDateFormat(
   "yyyy-MM-dd HH:mm:ss");

...


 public static final Calendar toCalendar(String strDate) {
  Calendar cale = null;
  try {
   Date thisDate = dateTimeFormatter.parse(strDate);
   cale = Calendar.getInstance();
   cale.setTime(thisDate);
  } catch (Exception e) {
   return null;
  }
  return cale;
 }

偷窥struts+hibernate分页(第二种方法):【上一篇】
如何替换eclipse的logo?:【下一篇】
【相关文章】
  • Json是个好东西
  • OSGi成为JSR291以及OSGi对Spring产生的影响
  • jsp 连接mysql(完整教程)
  • jsf学习四(添。删 。改)
  • [JavaScript]如何在服务端(Page.Write)调用自定义的JS方法
  • prototype.js中文手册
  • JSF应用程序的生命周期(zt)
  • Ajax4jsf User Guide 中文翻译(zt)
  • 基于AJAX和JSF打造丰富的互联网组件之应用篇(zt)
  • 基于AJAX和JSF打造丰富的互联网组件之Mabon篇(zt)
  • 【随机文章】
  • Oracle初学者笔记(十一)--Oracle中的安全
  • 使用Xnest
  • 学习笔记
  • Linux下硬盘分区最佳方案
  • Eclipse的log4j插件log4e的用法
  • 病毒名称 TrojanDownloader.Wintrim.aw
  • McDATA业绩佳 抢思科“饭碗”
  • cron自动化任务
  • 用户搜索常见问题及解决方法小结
  • [转载]系统引导与启动(suzhe前辈的一次报告)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.