??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲少妇诱惑,国产日产精品一区二区三区四区的观看方式,97超碰人人在线http://www.aygfsteel.com/xiaoniao/zh-cnWed, 18 Jun 2025 14:58:26 GMTWed, 18 Jun 2025 14:58:26 GMT60checkformhttp://www.aygfsteel.com/xiaoniao/archive/2007/07/16/130465.htmlMon, 16 Jul 2007 00:55:00 GMThttp://www.aygfsteel.com/xiaoniao/archive/2007/07/16/130465.htmlhttp://www.aygfsteel.com/xiaoniao/comments/130465.htmlhttp://www.aygfsteel.com/xiaoniao/archive/2007/07/16/130465.html#Feedback0http://www.aygfsteel.com/xiaoniao/comments/commentRss/130465.htmlhttp://www.aygfsteel.com/xiaoniao/services/trackbacks/130465.html<!-- ---------------------------------------------------------------------
//
// File: form.htc
// version: 1.0
// Description:客户端表单验?
// author: 伍子
// ModifyBy: Arsene
//
//-------------------------------------------------------------------- -->
/**
表单定义:
<form name="form1" action="" style="behavior:url('form.htc')"></form>
客户端表单验证是p单的onSubmit事g触发Q由于表单的onSubmit事g只能由提交按钮触?
所以如果要用函数提交表单form1.submit(),则必d时执行form1.onSubmit()?/p>

cd定义:

一、整?int)
定义:
valueType="int"
属?
objName 对象名称(字符?
mustInput 必输?true/false)
minInput 最?数字)
maxInput 最大?数字)
举例:
<input type="text" name="test" valueType="int" objName="总蝲重吨" mustInput="true" maxInput="10000">

二、Q点型(float)
定义:
valueType="float"
属?
objName 对象名称(字符?
mustInput 必输?true/false)
minInput 最?数字)
maxInput 最大?数字)
decimalLen数位数(数字)
举例:
<input type="text" name="test" valueType="float" objName="qh" mustInput="true" maxInput="10000.50" decimalLen="2">

三、字W串(string)
定义:
valueType="string"
属?
objName 对象名称(字符?
mustInput 必输?true/false)
stringLen 字符串长?数字)
举例:
<input type="text" name="test" valueType="string" objName="英文船名" mustInput="true" stringLen="100">

十、字W型(char)
定义:
valueType="char"
属?
objName 对象名称(字符?
mustInput 必输?true/false)
charsLen 字符串长?数字)
举例:
<input type="text" name="test" valueType="char" objName="爱好" mustInput="true" charsLen="5">

四、日?date)
定义:
valueType="date"
属?
objName 对象名称(字符?
mustInput 必输?true/false)
举例:
<input type="text" name="test" valueType="date" objName="开始日? mustInput="true" before="ddd,ccc,sss" after="aa">
备注:
日期现在只能校验的格式ؓ(yyyy-mm-dd)

五、邮?email)
定义:
valueType="email"
属?
objName 对象名称(字符?
mustInput 必输?true/false)
举例:
<input type="text" name="test" valueType="email" objName="邮箱" mustInput="true">

六、单?radio)
定义:
valueType="radio"
属?
objName 对象名称(字符?
mustSelect 必输?true/false)
举例:
<input type="radio" name="test" valueType="radio" objName="U船方式" mustSelect="true">
备注:
对于同一l单选按钮,只需要定义第一个即可?/p>

七、复?checkbox)
定义:
valueType="checkbox"
属?
objName 对象名称(字符?
minSelect 最选择?数字)
maxSelect 最大选择?数字)
举例:
<input type="checkbox" name="test" valueType="checkbox" objName="爱好" minSelect="2" maxSelect="5">
备注:
对于同一l复选按钮,只需要定义第一个即可?/p>

八、下拉列表框(select)
定义:
valueType="select"
属?
objName 对象名称(字符?
mustSelect 必输?true/false)
举例:
<select name="test" valueType="select" objName="U船方式" mustSelect="true">

九、列表框(list)
定义:
valueType="list"
属?
objName 对象名称(字符?
minSelect 最选择?数字)
maxSelect 最大选择?数字)
举例:
<select name="test" valueType="list" objName="爱好" minSelect="2" maxSelect="5">
**/

var es; //错误个数
var msg; //错误消息

function addMsg(obj, msg, type) {
if (type=="radio" || type=="checkbox") {
 var warning = document.getElementById("warning");
 if (msg != "") {
  es = es + 1;
  warning.parentNode.parentNode.style.display = '';
  //var alarm = document.createElement("<img name=alarm src=./img/alarm.gif hspace=8 height=16 width=16>")
  //var warningMsg = document.createElement("<span style='color: #FF0000;font-weight: bold;'>"+msg+"</span>")
  if (!warning.hasChildNodes()) {
   warning.innerHTML = "<img name=alarm src=./img/alarm.gif hspace=8 height=16 width=16>" +
        "<span style='color: #FF0000;font-weight: bold;'>"+msg+"</span>";
  }
  //insertAfter(obj.parentNode, alarm, obj);
 } else {
  warning.parentNode.parentNode.style.display = 'none';
  //if (hasAlarm(obj)) obj.parentNode.removeChild(obj.nextSibling);
  if (warning.hasChildNodes()) {
   warning.innerHTML = "";
  }
 }
} else {
 if (msg != "") {
  //alert(obj.name);
  //alert(obj.parentNode.title);
  es = es + 1;
  obj.parentNode.title = msg;
  var alarm = document.createElement("<img name=alarm src=./img/alarm.gif hspace=8 height=16 width=16>")
  if (!(hasAlarm(obj))) insertAfter(obj.parentNode, alarm, obj);
  //alert(es);
 } else {
  //alert(obj.name);
  obj.parentNode.title = "";
  //alert(obj.parentNode.title);
  if (hasAlarm(obj)) obj.parentNode.removeChild(obj.nextSibling);
 }
  }
}

function insertAfter(parent, node, referenceNode) {
 parent.insertBefore(node, referenceNode.nextSibling);
}

function prependChild(parent, node) {
    parent.insertBefore(node, parent.firstChild);
}
//判断obj下一个节点nodeName是否为IMG,而且name为alarm
function hasAlarm(obj) {
 var x = obj.nextSibling;
 if (x != null) {
    if (x.nodeName == "IMG" && x.name == "alarm") {
      return true;
   } else {
      return false;
   }
 } else {
    return false;
 }
}
//判断msg是否为空,如果不ؓI?则添?and
function formcheck_delNull(message) {
 var s = message;
 if (s != "") {
  s = s + "\n";
 }
 return s;
}

function checkForm(thisform)
{
es = 0; //初始化错误个?br>//var oForm=event.srcElement;
var oForm=thisform;
var eles = oForm.elements;
//遍历所有表元素
for(var i=0;i<eles.length;i++)
{
msg = ""; //清空msg
//是否需要验?br>var sType=eles[i].valueType;
if(sType)
{
if(eles[i].mustInput!=null && eles[i].mustInput)
{
if(trim(eles[i].value)=="")
{
if(eles[i].objName!=null)
{
 //alert(eles[i].objName+"不可以ؓI?);
 //addMsg(eles[i], eles[i].objName+"不可以ؓI?);
 msg = formcheck_delNull(msg) + eles[i].objName+"不可以ؓI?;
}
else
{
//alert("该文本框为必输字D?);
 //addMsg(eles[i], "该文本框为必输字D?);
 msg = formcheck_delNull(msg) + "该文本框为必输字D?;
}
} else {
 //delMsg(eles[i]);
 //alert(es);
}
}
switch(sType)
{
//整数
case "int":
checkInt(eles[i]);
break;

//数
case "float":
checkFloat(eles[i]);
break;

//字符?br>case "string":
checkString(eles[i]);
break;

//字符?br>case "char":
checkChar(eles[i]);
break;

//q䆾
case "year":
checkYear(eles[i]);
break;

//日期
case "date":
checkDate(eles[i]);
break;

//邮g
case "email":
checkEmail(eles[i]);
break;

//单选按?br>case "radio":
checkRadio(eles[i]);
break;
//复选按?br>case "checkbox":
checkBox(eles[i]);
break;
//下拉列表?br>case "select":
checkSelect(eles[i]);
break;
//列表?br>case "list":
checkList(eles[i]);
break;

}
} else {
 //非需要校验类?则不q行error的检?br> continue;
}
 addMsg(eles[i], msg, sType);
}
//w䆾证相x?br>var sfz = oForm.sfz;
var csrq= oForm.csrq;
var sex = oForm.sex;
//var sfzmsg;
/*if(sfz==null||csrq==null||sex==null){
 if (es > 0) {
  event.returnValue=false;
  return false;
 } else {
  event.returnValue=true;
  return true;
 }
}*/
if (sfz!=null && csrq!=null && sex!=null) {
 if(sfz.value.length>0) {
  if(sfz.value.length>0&&csrq.value.length>0&&sex.value.length>0){
   /*if(!CheckIdCard(sfz.value,sex.value,strrq10to8(csrq.value))){
    addMsg(sfz, msg, "char");
   } else {
    addMsg(sfz, msg,)
   }*/
   CheckIdCard(sfz.value,sex.value,strrq10to8(csrq.value));
   addMsg(sfz, msg, "char");
 } else {
  var sfzmsg = "׃以下原因Qn份证验证p|Q?;
  if (sfz.value.length <=0) {
   msg = formcheck_delNull(msg) + "w䆾证号码不能ؓI?;
  }
  if (csrq.value.length <=0) {
   msg = formcheck_delNull(msg) + "出生日期不能为空";
  }
  if (sex.value.length <=0) {
   msg = formcheck_delNull(msg) + "性别不能为空";
  }
  addMsg(sfz, sfzmsg+msg, "char");
 }
 }
}

/*if (sfz.value.length<=0) {
  sfzmsg = "w䆾证验证失败,w䆾证号码不能ؓI?;
  addMsg(sfz, sfzmsg, "char");
} else if (csrq.value.length<=0) {
  sfzmsg = formcheck_delNull(sfzmsg) + "w䆾证验证失败,出生日期不能为空";
  addMsg(sfz, sfzmsg, "char");
} else if (sex.value.length<=0) {
  sfzmsg = formcheck_delNull(sfzmsg) + "w䆾证验证失败,性别不能为空";
  addMsg(sfz, sfzmsg, "char");
  if (es > 0) {
   event.returnValue=false;
   return false;
  } else {
   event.returnValue=true;
   return true;
  }
} else {
 if(!CheckIdCard(sfz.value,sex.value,strrq10to8(csrq.value))){
  addMsg(sfz, msg, "char");
  if (es > 0) {
   event.returnValue=false;
   return false;
  } else {
   event.returnValue=true;
   return true;
  }
 }
}*/


//alert(es);
if (es > 0) {
 event.returnValue=false;
 alert("h查数据录入是否正、完整。\n(Ʋ知详情Lȝ色叉叉处?");
 return false;
} else {
 event.returnValue=true;
 return true;
}
}

/***查是否ؓ整数***/
function checkInt(ele)
{
if(!isInt(ele.value))
{
//alert("您输入的"+ convertNullToSpace(ele.objName)+"值应为整?);
 //addMsg(ele, "您输入的"+ convertNullToSpace(ele.objName)+"值应为整?);
 //msg = msg + "您输入的"+ convertNullToSpace(ele.objName)+"值应为整?;
 msg = formcheck_delNull(msg) + "您输入的"+ convertNullToSpace(ele.objName)+"值应为整?;
}
else
{
 //delMsg(ele);
if(ele.maxInput!=null && !isNaN(ele.maxInput))
if(parseInt(ele.maxInput)<parseInt(ele.value))
{
//alert("您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput);
 //addMsg(ele, "您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput);
 //msg = msg + "您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput;
 msg = formcheck_delNull(msg) + "您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput;
}
if(ele.minInput!=null && !isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.value))
{
//alert("您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput);
 //addMsg(ele, "您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput);
 //msg = msg + "您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput;
 msg = formcheck_delNull(msg) + "您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput;
}
}
}

/***查是否ؓ数***/
function checkFloat(ele)
{
if(isNaN(ele.value))
{
//alert("您输入的"+ convertNullToSpace(ele.objName)+"值应为整数或数");
 //addMsg(ele, "您输入的"+ convertNullToSpace(ele.objName)+"值应为整数或数");
 //msg = msg + "您输入的"+ convertNullToSpace(ele.objName)+"值应为整数或数";
 msg = formcheck_delNull(msg) + "您输入的"+ convertNullToSpace(ele.objName)+"值应为整数或数";
}
else
{
if(ele.decimalLen!=null && !checkDecimal(ele.value,ele.decimalLen))
{
//alert("您输入的"+convertNullToSpace(ele.objName)+"值小C最多ؓ"+ele.decimalLen);
 //addMsg(ele, "您输入的"+convertNullToSpace(ele.objName)+"值小C最多ؓ"+ele.decimalLen);
 //msg = msg + "您输入的"+convertNullToSpace(ele.objName)+"值小C最多ؓ"+ele.decimalLen;
 msg = formcheck_delNull(msg) + "您输入的"+convertNullToSpace(ele.objName)+"值小C最多ؓ"+ele.decimalLen;
}
if(ele.maxInput!=null && !isNaN(ele.maxInput))
if(parseInt(ele.maxInput)<parseInt(ele.value))
{
//alert("您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput);
 //addMsg(ele, "您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput);
 //msg = msg + "您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput;
 msg = formcheck_delNull(msg) + "您输入的"+ convertNullToSpace(ele.objName)+"值应该小?+ele.maxInput;
}
if(ele.minInput!=null && !isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.value))
{
//alert("您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput);
 //add(msg, "您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput);
 //msg = msg + "您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput;
 msg = formcheck_delNull(msg) + "您输入的"+ convertNullToSpace(ele.objName)+"值应该大?+ele.minInput;
}
}
}

/***查是否ؓ字符?**/
function checkString(ele)
{
if(ele.stringLen!=null && !isNaN(ele.stringLen))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.stringLen))
{
//alert("您输入的"+convertNullToSpace(ele.objName)+"最大长度ؓ"+ele.stringLen);
 //addMsg(ele, "您输入的"+convertNullToSpace(ele.objName)+"最大长度ؓ"+ele.stringLen);
 //msg = msg + "您输入的"+convertNullToSpace(ele.objName)+"最大长度ؓ"+ele.stringLen;
 msg = formcheck_delNull(msg) + "您输入的"+convertNullToSpace(ele.objName)+"最大长度ؓ"+ele.stringLen;
}
}
}

/***查是否ؓ字符?**/
function checkChar(ele)
{
if(ele.charLen!=null && !isNaN(ele.charLen))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.charLen))
{
//alert("您输入的"+convertNullToSpace(ele.objName)+"最大长度ؓ"+ele.charLen);
 msg = formcheck_delNull(msg) + "您输入的"+convertNullToSpace(ele.objName)+"最大长度ؓ"+ele.charLen;
}
//字母数字
var patrn=/^[a-zA-Z0-9]+[a-zA-Z0-9]$/;
if (value.length>0&&!patrn.exec(value)){
 //alert("您输入的"+convertNullToSpace(ele.objName)+"字符应ؓ字母或数?);
 msg = formcheck_delNull(msg) + "您输入的"+convertNullToSpace(ele.objName)+"字符应ؓ字母或数?;
}

}
}

/***查是否ؓq䆾格式***/
function checkYear(ele) {
 if(ele.mustInput!=null && ele.mustInput && !isYear(ele.value)) {
  msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"误入有效年?yyyy)";
 }
 var parm1 = ele.before;
 var parm2 = ele.after;
 //在设|年份之?br> if(parm1!=null){
 var mb=new Array();
 mb = parm1.split(",");
 for(var ii=0;ii<mb.length;ii++){
  //当前校验控g?br>  var rqz1 = ele.value;
  //讄目标控g?br>  var d = new Date();
  var rqz2 = d.getFullYear();
  if(mb[ii]!="today"){
   rqz2 = eval("document.all."+mb[ii]).value;
  }
  if(parseInt(rqz1) <= parseInt(rqz2)){
   //return true;
   if (ele.minSpan!=null && !isNaN(ele.minSpan)) {
    if (parseInt(rqz1) > parseInt(rqz2) - parseInt(ele.minSpan)) {
     if(mb[ii]!="today"){
      msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"?+eval("document.all."+mb[ii]).objName+"的时间跨度应该大于等?+ele.minSpan;
     }else{
      msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"与当前年份的旉跨度应该大于{于"+ele.minSpan;
     }
    }
   }
   
   if (ele.maxSpan!=null && !isNaN(ele.maxSpan)) {
    if (parseInt(rqz1) < parseInt(rqz2) - parseInt(ele.maxSpan)) {
     if(mb[ii]!="today"){
      msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"?+eval("document.all."+mb[ii]).objName+"的时间跨度应该小于等?+ele.maxSpan;
     }else{
      msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"与当前年份的旉跨度应该于{于"+ele.maxSpan;
     }
    }
   }
  }else{
   if(mb[ii]!="today"){
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该于"+eval("document.all."+mb[ii]).objName;
   }else{
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该于当前q䆾";
   }
  }
   }
 }
 //在设|年份后
 if(parm2!=null){
 var mb=new Array();
 mb = parm2.split(",");
 for(var ii=0;ii<mb.length;ii++){
  //当前校验控g?br>  var rqz1 = ele.value;
  //讄目标控g?br>  var d = new Date();
  var rqz2 = d.getFullYear();
  if(mb[ii]!="today"){
   rqz2 = eval("document.all."+mb[ii]).value;
  }
  if(parseInt(rqz1) >= parseInt(rqz2)){
   //return true;
   if (ele.minSpan!=null && !isNaN(ele.minSpan)) {
    if (parseInt(rqz1) < parseInt(rqz2) + parseInt(ele.minSpan)) {
     if(mb[ii]!="today"){
      msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"?+eval("document.all."+mb[ii]).objName+"的时间跨度应该大于等?+ele.minSpan;
     }else{
      msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"与当前年份的旉跨度应该大于{于"+ele.minSpan;
     }
    }
   }
   
   if (ele.maxSpan!=null && !isNaN(ele.maxSpan)) {
    if (parseInt(rqz1) > parseInt(rqz2) + parseInt(ele.maxSpan)) {
      if(mb[ii]!="today"){
       msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"?+eval("document.all."+mb[ii]).objName+"的时间跨度应该小于等?+ele.maxSpan;
      }else{
       msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"与当前年份的旉跨度应该于{于"+ele.maxSpan;
      }
    }
   }
  }else{
   if(mb[ii]!="today"){
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该大于"+eval("document.all."+mb[ii]).objName;
   }else{
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该大于当前日期";
   }
  }
   }
 }
}

/***查是否ؓ日期格式***/
function checkDate(ele)
{
if(ele.mustInput!=null && ele.mustInput&&!isDate(ele.value))
{
 msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"误入有效日?yyyy-mm-dd)";
}
if(ele.value!=null&&ele.value!=""&&!isDate(ele.value))
{
 msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"误入有效日?yyyy-mm-dd)";
}
var parm1 = ele.before;
var parm2 = ele.after;
//在设|日期之?br>if(parm1!=null){
 var mb=new Array();
 mb = parm1.split(",");
 for(var ii=0;ii<mb.length;ii++){
  //当前校验控g?br>  var rqz1 = ele.value;
  //讄目标控g?br>  var d = new Date();
  var rqz2 = d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
  if(mb[ii]!="today"){
   rqz2 = eval("document.all."+mb[ii]).value;
  }
  /*if(rqz1==""){
   //return true;
   if (msg != "") {
    addMsg(ele, msg);
    return false;
   } else { return true; }
  }*/
  if(chkBefore(rqz1,rqz2)==true){
   //return true;
  }else{
   if(mb[ii]!="today"){
    

//alert(convertNullToSpace(ele.objName)+"应该于{于"+document.getElementById(parm1).objName);
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该于{于"+eval("document.all."+mb[ii]).objName;
   }else{
    //alert(convertNullToSpace(ele.objName)+"应该于{于当前日期");
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该于{于当前日期";
   }
  }
 }
}
//在设|日期之?br>if(parm2!=null){
 var mb=new Array();
 mb = parm2.split(",");
 for(var ii=0;ii<mb.length;ii++){
  //当前校验控g?br>  var rqz1 = ele.value;
  //讄目标控g?br>  var d = new Date();
  var rqz2 = d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
  if(mb[ii]!="today"){
   rqz2 = eval("document.all."+mb[ii]).value;
  }
  /*if(rqz1==""){
   //return true;
   if (msg != "") {
    addMsg(ele, msg);
    return false;
   } else { return true; }
  }*/
  if(chkAfter(rqz1,rqz2)==true){
   //return true;
  }else{
   if(mb[ii]!="today"){
    //alert(convertNullToSpace(ele.objName)+"应该大于"+document.getElementById(parm2).objName);
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该大于"+eval("document.all."+mb[ii]).objName;
   }else{
    //alert(convertNullToSpace(ele.objName)+"应该大于当前日期");
    msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"应该大于当前日期";
   }
  }
 }
}

}

/***查日?是否大于日期2***/
function chkBefore(rqz1,rqz2){
 if (rqz1=="" || rqz2=="") { return true;}
 var arr1 = rqz1.split("-");
    var arr2 = rqz2.split("-");
    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
    if(arr1[1].length == 1)
        arr1[1] = "0" + arr1[1];
    if(arr1[2].length == 1)
        arr1[2] = "0" + arr1[2];
    if(arr2[1].length == 1)
        arr2[1] = "0" + arr2[1];
    if(arr2[2].length == 1)
        arr2[2]="0" + arr2[2];
    var d1 = arr1[0] + arr1[1] + arr1[2];
    var d2 = arr2[0] + arr2[1] + arr2[2];
    if(parseInt(d1,10) <= parseInt(d2,10)){
       return true;
    }else{
    return false;
    }
}

/***查日?是否于日期2***/
function chkAfter(rqz1,rqz2){
 if (rqz1=="" || rqz2=="") { return true;}
  var arr1 = rqz1.split("-");
    var arr2 = rqz2.split("-");
    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
    if(arr1[1].length == 1)
        arr1[1] = "0" + arr1[1];
    if(arr1[2].length == 1)
        arr1[2] = "0" + arr1[2];
    if(arr2[1].length == 1)
        arr2[1] = "0" + arr2[1];
    if(arr2[2].length == 1)
        arr2[2]="0" + arr2[2];
    var d1 = arr1[0] + arr1[1] + arr1[2];
    var d2 = arr2[0] + arr2[1] + arr2[2];
    if(parseInt(d1,10) > parseInt(d2,10)){
       return true;
    }else{
    return false;
    }
}

/***查是否ؓ电子邮箱***/
function checkEmail(ele)
{
if(ele.value.length>0&&!isEmail(ele.value))
{
//alert("误入有效邮?);
 //addMsg(ele, "误入有效邮?);
 msg = formcheck_delNull(msg) + "误入有效邮?;
}

}


/***查单选按钮是否需要选择***/
function checkRadio(ele)
{
//var rads = document.getElementsByName(ele.name);
//eval("var rads="+name+"."+ele.name);
eval("var rads=document.all."+ele.name);
var selectCount=0;
for(var i=0;i<rads.length;i++)
{
if(rads[i].checked)
{
selectCount++;
}
}

if(ele.mustSelect!=null && ele.mustSelect)
{
if(selectCount==0)
{
//alert("请选择"+convertNullToSpace(ele.objName));
 //addMsg(ele, "请选择"+convertNullToSpace(ele.objName));
 msg = formcheck_delNull(msg) + "请选择"+convertNullToSpace(ele.objName);
}

}
}

/***查复选按钮是否需要选择***/
function checkBox(ele)
{
//var rads = document.getElementsByName(ele.name);
//alert(ele.name);
//eval("var chks="+name+"."+ele.name);
eval("var chks=document.all."+ele.name);
var selectCount=0;
for(var i=0;i<chks.length;i++)
{
if(chks[i].checked)
{
selectCount++;
}
}
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{
if(selectCount<parseInt(ele.minSelect))
{
//alert(convertNullToSpace(ele.objName)+"臛_选择"+ele.minSelect+"?);
 //addMsg(ele, convertNullToSpace(ele.objName)+"臛_选择"+ele.minSelect+"?);
 msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"臛_选择"+ele.minSelect+"?;
}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
//alert(convertNullToSpace(ele.objName)+"臛_选择"+ele.maxSelect+"?);
 //addMsg(ele, convertNullToSpace(ele.objName)+"臛_选择"+ele.maxSelect+"?);
 msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"臛_选择"+ele.maxSelect+"?;
}
}

}

/***查下拉列表框是否需要选择***/
function checkSelect(ele)
{
//var rads = document.getElementsByName(ele.name);
if(ele.mustSelect!=null && ele.mustSelect)
{
//if(ele.selectedIndex==0)
if(ele.value=="")
{
//alert("请选择"+convertNullToSpace(ele.objName));
 //addMsg(ele, "请选择"+convertNullToSpace(ele.objName));
 msg = formcheck_delNull(msg) + "请选择"+convertNullToSpace(ele.objName);
}
}

}


/***查列表框的选择Ҏ***/
function checkList(ele)
{
//var rads = document.getElementsByName(ele.name);
var selectCount=0;
for(var i=0;i<ele.options.length;i++)
{
if(ele.options[i].selected)
{
selectCount++;
}
}
//alert(selectCount);
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{
if(selectCount<parseInt(ele.minSelect))
{
//alert(convertNullToSpace(ele.objName)+"臛_选择"+ele.minSelect+"?);
 //addMsg(ele, convertNullToSpace(ele.objName)+"臛_选择"+ele.minSelect+"?);
 msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"臛_选择"+ele.minSelect+"?;
}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
//alert(convertNullToSpace(ele.objName)+"臛_选择"+ele.maxSelect+"?);
 msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"臛_选择"+ele.maxSelect+"?;
}
}

}


/***判断是否为整?**/
function isInt(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s))
return false;
return true;
}
/***判断是否为数?**/
function isNumber(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s))
return false;
return true;
}
/***判断是否为日?**/
function isDate(str)
{
//var str = ele.value;
//var year, month, day;
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
return false;
}
var d= new Date(r[1], r[3]-1, r[4]);
/*year = r[1];
month = r[3];
day = r[4];*/
if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
{
return false;
}
/*if (parseInt(r[3], 10) < 10) month = "0" + parseInt(month, 10);
if (parseInt(r[4], 10) < 10) day = "0" + parseInt(day, 10);
if (parseInt(r[3], 10) < 10 || parseInt(r[4], 10) < 10) ele.value = year + "-" + month + "-" + day;*/
return true;
}
/***判断是否为年?**/
function isYear(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s) || s.length != 4) {
 //alert("11");
 return false;
} else {
 //alert("22");
 return true;
}
}
/***判断是否为邮?**/
function isEmail(str)
{
if(str.match(/[\w-]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig)!=str)
return false;
else
return true;
}
/***NULL转化为空|用于昄对象名称***/
function convertNullToSpace(paramValue)
{
if(paramValue==null)
return "";
else
return paramValue;
}
/***查小C?**/
function checkDecimal(num,decimalLen)
{
var len = decimalLen*1+1;
if(num.indexOf('.')>0)
{
num=num.substr(num.indexOf('.')+1,num.length-1);
if ((num.length)<len)
{
return true;
}
else
{
return false;
}
}
return true;
}
/***去除I格***/
function trim(str)
{
if (str.length > 0)
{
while ((str.substring(0,1) == " ") && (str.length > 0))
{
str = str.substring(1,str.length);
}
while (str.substring(str.length-1,str.length) == " ")
{
str = str.substring(0,str.length-1);
}
}
return str;
}

/********************************************************************
用户w䆾证进行初校验
实现功能Q?br>Q?5位的月校验,日校验,性别校验Q?5位下的年不需要进行校验)
Q?8位的q校验,月校验,日校验,性别校验Q末位国家校验码校验
Q、选择性的校验w䆾证是否和资料中性别匚wQ参C的性别留空Q即不校?br>Q、选择性的校验w䆾证是否和资料中的出生q月匚wQ参C的生日留I,即不校验
************************************************************************/

function CheckIdCard(CardNo,Sex,Birthday){
//性别 1Q男 0Q女
//生日 19811010
if ((CardNo == "")||(!(isNumber(CardNo))&&(CardNo.length == 15))||(!(isNumber(CardNo.substr(0,17)))&&(CardNo.length == 18))||((CardNo.length != 15)&&(CardNo.length != 18)))
{
    //alert("您的w䆾证号码输入有误,必需?5数字?8?请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您的w䆾证号码输入有误,必需?5数字?8?请重新检查ƈ输入!";
}
else if (CardNo.length == 15)
{
  if(CardNo.substr(8,2)>12||CardNo.substr(8,2)<1)
  {
    //alert("您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!";
  }
  if(CardNo.substr(10,2)>31||CardNo.substr(10,2)<1)
  {
    //alert("您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!";
  }
  if(Birthday!=""&&("19" + CardNo.substr(6,6))!=Birthday)
  {
    //alert("您n份证的生日和资料里的生日不符,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的生日和资料里的生日不符,请重新检查ƈ输入!";
  }

  //alert(Sex+"14="+CardNo.charAt(14)%2);
  if(Sex=="?&&CardNo.charAt(14)%2!=1)
  {
    //alert("您n份证的性别和资料里的性别不符,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的性别和资料里的性别不符,请重新检查ƈ输入!";
  }
  if(Sex=="?&&CardNo.charAt(14)%2!=0)
  {
    //alert("您n份证的性别和资料里的性别不符,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的性别和资料里的性别不符,请重新检查ƈ输入!";
  }
  //return true;
}
else if (CardNo.length == 18)
{
  if(CardNo.substr(6,4)<1900||CardNo.substr(6,4)>2100)
  {
    //alert("您n份证的出?#8220;q?#8221;输入有误,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的出?#8220;q?#8221;输入有误,请重新检查ƈ输入!";
  }
  if(CardNo.substr(10,2)>12||CardNo.substr(10,2)<1)
  {
    //alert("您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!";
  }
  if(CardNo.substr(12,2)>31||CardNo.substr(12,2)<1)
  {
    //alert("您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的出?#8220;?#8221;输入有误,请重新检查ƈ输入!";
  }
  if(Birthday!=""&&CardNo.substr(6,8)!=Birthday)
  {
    //alert("您n份证的生日和资料里的生日不符,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的生日和资料里的生日不符,请重新检查ƈ输入!";
  }
  //alert(Sex+"18="+CardNo.substr(16));
  if(Sex=="?&&CardNo.charAt(16)%2!=1)//h校?br>  {
    //alert("您n份证的性别和资料里的性别不符,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的性别和资料里的性别不符,请重新检查ƈ输入!";
  }
  if(Sex=="?&&CardNo.charAt(16)%2!=0)//x校?br>  {
    //alert("您n份证的性别和资料里的性别不符,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您n份证的性别和资料里的性别不符,请重新检查ƈ输入!";
  }
  var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
  var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
 
  if (CardNo.charAt(17) == 'x')
  {
    CardNo = CardNo.replace("x","X");   
  }
 
  var checkDigit = CardNo.charAt(17); 
  var cardNoSum = 0;
 
  for (var i=0; i<CardNo.length-1; i++)
  {
    cardNoSum = cardNoSum + CardNo.charAt(i)*Wi[i];
  }
 
  var seq = cardNoSum%11;
  var getCheckDigit = Ai[seq];
 
  if (checkDigit != getCheckDigit)
  {
    //alert("您的w䆾证号码校验失败,请重新检查ƈ输入!");
    //return false;
    msg = formcheck_delNull(msg) + "您的w䆾证号码校验失败,请重新检查ƈ输入!";
  }
  //return true;
}
/*else
{
    return true;
}*/
}

function isNumber(str)
{
if(str==null || str=="") return false ;
for(var i=0 ;i<str.length ;i++)
{
var cI = str.charAt(i) ;
if(cI<'0' || cI>'9') return false ;
}
return true;
}

function strrq10to8(str)
{
  var strs = str.split("-");
  var str  = strs[0]+strs[1]+strs[2];
  return str;
}



2007-07-16 08:55 发表评论
]]>
javascript经?/title><link>http://www.aygfsteel.com/xiaoniao/archive/2007/07/05/128230.html</link><dc:creator>鸟</dc:creator><author>鸟</author><pubDate>Thu, 05 Jul 2007 00:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/xiaoniao/archive/2007/07/05/128230.html</guid><wfw:comment>http://www.aygfsteel.com/xiaoniao/comments/128230.html</wfw:comment><comments>http://www.aygfsteel.com/xiaoniao/archive/2007/07/05/128230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xiaoniao/comments/commentRss/128230.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xiaoniao/services/trackbacks/128230.html</trackback:ping><description><![CDATA[<p>获取select选定的元?br>var   Obj   =   document.getElementById("selectID");  <br>Obj.option[Obj.selectedIndex].value<br>如何用Javascript的内|函数把以逗号分开的字W串转化成一个数l。然后输出数l?nbsp; <br>  <script>  <br>  str="a,b,c"  <br>  arr=str.split(",");  <br>  for(i=0;i<arr.length;i++)alert(i+":"+arr[i])  <br>  </script>  <br>如何用自己写的函数把以逗号分开的字W串转化成一个数l。然后输出数l?nbsp; <br>  <script>  <br>  str="o,m,n"  <br>  arr=split2(str);  <br>  for(i=0;i<arr.length;i++)alert(i+":"+arr[i])  <br>  function   split2(tmp){  <br>  return   tmp.match(/([^,]+)/g)  <br>  }  <br>  </script>  <br><br>Example:<br><html><br><head><br>    <title></title></p> <p>    <script language="javascript">        <br>        function Add(objA,objB)<br>        {<br>            var tem=new Array();<br>            with(objA)<br>            for(i=length-1;i>=0;i--)<br>                if(options[i].selected){tem[tem.length]=new Option(options[i].text,options[i].value);}<br>            <br>            if(objA.selectedIndex>-1)<br>            {<br>                for(i=0;i<objB.length;i++) tem[tem.length]=objB.options[i];<br>                with(objB)<br>                {<br>                    length=0;<br>                    tem.sort(sortArr);<br>                    for(i=0;i<tem.length;i++) options[length]=new Option(tem[i].text,tem[i].value)<br>                }<br>            }    <br>        }<br>        <br>        function sortArr(a,b)<br>        {<br>            if(a.text>b.text)return 1;<br>            if(a.text<b.text)return -1;<br>            return 0;<br>        }<br>        //    <br>        <br>        //<br>        function up(obj)<br>        {        <br>            var objO = new Option(obj.options[obj.selectedIndex].text,obj.options[obj.selectedIndex].value);    <br>            <br>            var selectedIndex = obj.selectedIndex;<br>            if(selectedIndex>0)<br>            {                <br>                obj.options[selectedIndex].text = obj.options[selectedIndex-1].text;<br>                obj.options[selectedIndex].value = obj.options[selectedIndex-1].value;<br>                <br>                obj.options[selectedIndex-1].text = objO.text;<br>                obj.options[selectedIndex-1].value = objO.value;<br>                <br>                obj.selectedIndex = selectedIndex-1;        <br>            }<br>        }<br>        //<br>        <br>        //<br>        function down(obj)<br>        {        <br>            var objO = new Option(obj.options[obj.selectedIndex].text,obj.options[obj.selectedIndex].value);    <br>            <br>            var selectedIndex = obj.selectedIndex;<br>            if(selectedIndex<obj.options.length-1)<br>            {                <br>                obj.options[selectedIndex].text = obj.options[selectedIndex+1].text;<br>                obj.options[selectedIndex].value = obj.options[selectedIndex+1].value;<br>                <br>                obj.options[selectedIndex+1].text = objO.text;<br>                obj.options[selectedIndex+1].value = objO.value;<br>                <br>                obj.selectedIndex = selectedIndex+1;<br>            }<br>        }<br>        //<br>        <br>        // 双击时添加到b<br>        function dba(objA,objB)<br>        {            <br>            var objO=new Option(objA.options[objA.selectedIndex].text,objA.options[objA.selectedIndex].value)<br>            objB.add(objO);<br>        }<br>        //<br>        // 双击时删除b<br>        function dbb(obj)<br>        {<br>            obj.removeChild(obj.options[obj.selectedIndex]);<br>        }<br>        //<br>        <br>        // 删除b中选中的项<br>        function del(obj)<br>        {        <br>            for(var i=obj.options.length-1;i>=0;i--)<br>            {<br>                if(obj.options[i].selected)<br>                {<br>                    obj.removeChild(obj.options[i]);<br>                }<br>            }            <br>        }<br>        //<br>        <br>        //<br>        function getvalue(obj)<br>        {<br>            var str="";<br>            <br>            for(var i=0;i<obj.options.length;i++)<br>            {<br>                if(str.length>0)<br>                    str = str + "," + obj.options[i].value;<br>                else<br>                    str = obj.options[i].value;<br>            }<br>            <br>            document.getElementById("selectValue").innerText = str;<br>        }<br>        //<br>    </script></p> <p></head><br><body bgcolor="#CCCCCC"><br>    <table cellspacing="0" cellpadding="0" width="448" border="0"><br>        <tr><br>            <td width="45%" align="center"><br>                <select style="width: 155px" multiple size="15" name="a" ondblclick="dba(this,document.getElementById('b'))"><br>                    <option value="av1" title="av1">at1</option><br>                    <option value="av2" title="av2" style="background-color:#999999">at2</option><br>                    <option value="av3" title="av3">at3</option><br>                    <option value="av4" title="av4">at4</option><br>                    <option value="av5" title="av5">at5</option><br>                    <option value="av6" title="av6">at6</option><br>                    <option value="av7" title="av7">at7</option><br>                </select><br>            </td><br>            <td><br>                <input onClick="Add(document.getElementById('a'),document.getElementById('b'))" type="button"<br>                    value="&gt;&gt;" style="width: 40px"><br>                <br><br>                <input onClick="del(document.getElementById('b'))" type="button" value="Del" style="width: 40px"><br>                <br><br>                <input onClick="up(document.getElementById('b'))" type="button" value="b↑" style="width: 40px"><br>                <br><br>                <input onClick="down(document.getElementById('b'))" type="button" value="b↓" style="width: 40px"><br>            </td><br>            <td width="45%" align="center"><br>                <select style="width: 155px" multiple size="15" name="b" ondblclick="dbb(this)"><br>                    <option value="bv1">bt1</option><br>                    <option value="bv2">bt2</option><br>                    <option value="bv3">bt3</option><br>                    <option value="bv4">bt4</option><br>                    <option value="bv5">bt5</option><br>                    <option value="bv6">bt6</option><br>                    <option value="bv7">bt7</option><br>                    <option value="bv8">bt8</option><br>                </select><br>            </td><br>        </tr><br>        <tr><br>            <td colspan="3" align="center"><br>                <input type="button" name="button1" value="获得双select? onClick="getvalue(document.getElementById('b'))"></td><br>        </tr><br>        <tr><br>            <td colspan="3" align="center"><br>                <div id="selectValue"><br>                </div><br>            </td><br>        </tr><br>    </table><br></body><br></html></p> <img src ="http://www.aygfsteel.com/xiaoniao/aggbug/128230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xiaoniao/" target="_blank">鸟</a> 2007-07-05 08:32 <a href="http://www.aygfsteel.com/xiaoniao/archive/2007/07/05/128230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>|址攉http://www.aygfsteel.com/xiaoniao/archive/2007/07/04/128162.htmlWed, 04 Jul 2007 10:17:00 GMThttp://www.aygfsteel.com/xiaoniao/archive/2007/07/04/128162.htmlhttp://www.aygfsteel.com/xiaoniao/comments/128162.htmlhttp://www.aygfsteel.com/xiaoniao/archive/2007/07/04/128162.html#Feedback0http://www.aygfsteel.com/xiaoniao/comments/commentRss/128162.htmlhttp://www.aygfsteel.com/xiaoniao/services/trackbacks/128162.html========css========
www.52css.com

========html========

========javascript=====
select----->
http://www.cnblogs.com/kensonwang/archive/2007/06/28/798984.html
========ajax=========
http://www.ibm.com/developerworks/cn/xml/x-ajaxxml2/?S_TACT=105AGX52&S_CMP=techcsdn

http://www.blueidea.com/tech/web/2006/4032.asp
========struts========

========hibernate======

========spring========

========tapestry=======



2007-07-04 18:17 发表评论
]]>
ActionForm拼合成一条插入和更新语句http://www.aygfsteel.com/xiaoniao/archive/2007/07/04/128160.htmlWed, 04 Jul 2007 10:13:00 GMThttp://www.aygfsteel.com/xiaoniao/archive/2007/07/04/128160.htmlhttp://www.aygfsteel.com/xiaoniao/comments/128160.htmlhttp://www.aygfsteel.com/xiaoniao/archive/2007/07/04/128160.html#Feedback0http://www.aygfsteel.com/xiaoniao/comments/commentRss/128160.htmlhttp://www.aygfsteel.com/xiaoniao/services/trackbacks/128160.htmlpackage chs.jhsyss.form;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import java.util.Date;

public class Waper {

 public Waper(){
 }
 /**
  * 本方法用于将FORM对象l装成一条INSERT语句
  * @param obj ActionForm 以及其子对象
  * @param formPath  ActionForm 以及其子对象的包路径和名U?br>  * @param tableName  所要操作的数据?br>  * @return q回相应的INSERT语句
  */
 public String insert(Object obj,String formPath,String tableName){
  long start  = new Date().getTime();
  String sqlToVar = "insert into "+tableName+"(";
  String sqlToValues = " ) values(";
  Class $fj = null;
  try {
   $fj = Class.forName(formPath);//example "chs.jhsyss.form.FJhsyss"
  } catch (ClassNotFoundException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  Class clazz = obj.getClass();
  Method[] method = clazz.getDeclaredMethods();
  for(int i=0;i<method.length;i++){
   String methodName = method[i].getName();
   if(methodName.indexOf("get")<0){
    continue;// 除去非getҎ
   }else{
   try {
    Method m = $fj.getMethod(methodName, null);//Ҏ指定的方法名取得相应Ҏ
    String $methodName = methodName.toLowerCase().substring(3,methodName.length());//裁剪getXXX?/p>

法取得相应变量名U?br>    try {
     String result = (String) m.invoke(obj, null);//调用ҎQ前一个参C表传q来的FORM?/p>

象,后一个ؓ传递给Ҏ的参敎ͼq回l果为原来方法相应的q回?br>     sqlToVar+=$methodName+",";
     sqlToValues+="'"+result+"',";
     
    } catch (IllegalArgumentException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (IllegalAccessException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (InvocationTargetException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   } catch (SecurityException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (NoSuchMethodException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   }
  }
  sqlToVar=sqlToVar.substring(0,sqlToVar.length()-1);
  sqlToValues=sqlToValues.substring(0,sqlToValues.length()-1)+")";
  long end = new Date().getTime();
  System.out.println("插入操作pL?>"+(end-start)+"<-ms");
  System.out.println(sqlToVar+sqlToValues);
  return sqlToVar+sqlToValues;
  
 }
 public String update(Object obj,String formPath,String xh,String tableName){
  long start = new Date().getTime();
  String sqlToVar = "update "+tableName+" set ";
  Class $clazz = null;
  try{
   $clazz = Class.forName(formPath);
  }catch(ClassNotFoundException e){
   e.printStackTrace();
  }
  Class clazz = obj.getClass();
  Method[] method = clazz.getDeclaredMethods();
  for(int i = 0;i<method.length;i++){
   String methodName = method[i].getName();
   if(methodName.indexOf("get")<0){
    continue;// 除去非getҎ
   }else{
    try {
     Method m = $clazz.getMethod(methodName, null);
     String $methodName = methodName.toLowerCase().substring(3,methodName.length());//裁剪

getXXXҎ取得相应变量名称
     String result = (String) m.invoke(obj, null);
     sqlToVar+=$methodName+"='"+result+"',";
     
     
    } catch (SecurityException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (NoSuchMethodException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }//Ҏ指定的方法名取得相应Ҏ
    catch (IllegalArgumentException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (IllegalAccessException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (InvocationTargetException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
  sqlToVar=sqlToVar.substring(0,sqlToVar.length()-1)+" where xh="+xh;
  long end = new Date().getTime();
  System.out.println("更性操作花ҎL?>"+(end-start)+"<-ms");
  System.out.println("SQL->"+sqlToVar);
  return sqlToVar;
 }
 public static void main(String[] args){
  FJhsyss fj = new FJhsyss();
  fj.setBcrq("20050202");
  fj.setDwfzr("fafa");
  fj.setGnjygr("fafa");
  fj.setGnjyls("2000");
  fj.setXh("seq_hqjc_jhsyss,");
  String seq = "seq_hqjc_jhsyss.nextval";
  String path = "chs.jhsyss.form.FJhsyss"; 
  Waper r = new Waper();
  r.insert(fj,path,"MYTABLE");
  r.update(fj, path, "1", "mytable");
 }
}



2007-07-04 18:13 发表评论
]]>
BeanWaperhttp://www.aygfsteel.com/xiaoniao/archive/2007/04/30/114693.htmlMon, 30 Apr 2007 00:49:00 GMThttp://www.aygfsteel.com/xiaoniao/archive/2007/04/30/114693.htmlhttp://www.aygfsteel.com/xiaoniao/comments/114693.htmlhttp://www.aygfsteel.com/xiaoniao/archive/2007/04/30/114693.html#Feedback0http://www.aygfsteel.com/xiaoniao/comments/commentRss/114693.htmlhttp://www.aygfsteel.com/xiaoniao/services/trackbacks/114693.htmlpackage ff;

import java.lang.reflect.Field;
import java.sql.Date;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import java.sql.ResultSet;
/**
 * BEAN 适用c?通过数据库结果集包装一个POJO,对它q行赋?br> * 适用于非使用ORM框架的Y?br> */
public class BeanWaper {
 
 //传入的POJO对象参数
 private Object obj;
 
 //数据库结果集
 ResultSet result;
 
 //保存Field集合信息
 private Map fields = new HashMap();
 
 //预存储数据类?br> private Map propertyType = new HashMap();
 
 public BeanWaper(Object user,ResultSet result){
  System.out.println("ABC");
  this.obj = user;
  this.result = result;
  //基本常用数据cd  可能不完?br>  propertyType.put("int", Integer.valueOf(0));
  propertyType.put("long", Integer.valueOf(1));
  propertyType.put("String", Integer.valueOf(2));
  propertyType.put("byte", Integer.valueOf(3));
  propertyType.put("Date", Integer.valueOf(4));
  propertyType.put("double", Integer.valueOf(5));
  
  //补充 ?getDataBaseTypeValue(arg1,arg2,arg3)
  //propertyType.put("**", Integer.valueOf(6));
  //propertyType.put("**", Integer.valueOf(7));
  
 }
 
 /**
  * @see 装对象的字D名U和数据cd对象,供数据库取值时使用
  * @return
  */
 public Map getPropertyNamesAndType(){
  Field[] classFields = getFields();
  for(int flag = 0; flag < classFields.length; flag++ ){
   fields.put(getPropertyName(classFields[flag]),getPropertyType(classFields[flag]));
  }
  System.out.println("1.Fields信息:"+"\n"+fields.toString());
  return fields;
 }
 
 /**
  * @see 获取所有字D늚?br>  * @return
  */
 public Field[] getFields(){
  System.out.println("2.获取声明了的Fields信息"+"\n"+obj.getClass().getDeclaredFields().toString());
  return obj.getClass().getDeclaredFields();
 }
 
 /**
  * @see 获取指定字段域的数据cd
  * @param field指定字段?br>  * @return
  */ 
 public String getPropertyType(Field field){
  StringSpilt spilt = new StringSpilt();
  String[] values = spilt.split(field.getType().toString(), ".");
  String propertyType = spilt.getLastString(values);
  System.out.println("3.获取属性类型信?"+"\n"+propertyType);
  return propertyType;
 }
 
 /**
  * @see 通过传入属性数据类?名称,l果?通过匚w从结果集中取出相应数?br>  * @param type
  * @param name
  * @param result
  * @return
  * @throws NumberFormatException
  * @throws SQLException
  */
 public Object getDataBaseTypeValue(String type,String name,ResultSet result) throws NumberFormatException, SQLException{
  Object obj = null;
  int flag = ((Integer)propertyType.get(type)).intValue();
  switch(flag){
  case 0 : obj = Integer.valueOf(result.getInt(name)); break;
  case 1 : obj = Long.valueOf(result.getLong(name)); break;
  case 2 : obj = String.valueOf(result.getString(name)); break;
  case 3 : obj = Byte.valueOf(result.getByte(name)); break;
  case 4 : obj = (Date)result.getDate(name); break;
  case 5 : obj = Double.valueOf(result.getDouble(name)); break;
  //补充
  //case 6 : obj = String.valueOf(result.getString(name)); break;
  }
  System.out.println("4.打印获取的数据库g?"+"\n"+obj);
  return obj;
 }
 
 /**
  * @see 讄指定的BEANcȝ?br>  * @param clazz
  * @param value
  * @param field
  */
 public void setValue(Object clazz, Object value,Field field){
  try {
   field.set(clazz, value);
  } catch (IllegalArgumentException e) {
   e.printStackTrace();
   System.out.println("5.打印异常信息如下:"+"\n"+e);
  } catch (IllegalAccessException e) {
   e.printStackTrace();
   System.out.println("6.打印异常信息如下:"+"\n"+e);
  }
 }
 
 /**
  * @see 包装指定的BEANc?l果Z入的BEAN拥有设定的?br>  * @param result
  * @throws NumberFormatException
  * @throws SQLException
  */
 public void waperBean(ResultSet result) throws NumberFormatException, SQLException{
  Map names_types = getPropertyNamesAndType();
  Set keys = names_types.keySet();
  Iterator ite = keys.iterator();
  while(ite.hasNext()){
   String name = (String) ite.next();
   String type = (String) names_types.get(name);
   Field field = null;
   try {
    field = obj.getClass().getDeclaredField(name);
   } catch (SecurityException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("7.打印异常信息如下:"+"\n"+e);
   } catch (NoSuchFieldException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("8.打印异常信息如下:"+"\n"+e);
   }
   setValue(obj,getDataBaseTypeValue(type,name,result),field);  
  } 
 }
 
 //获取属性名U?br> public String getPropertyName(Field field){
  return field.getName();
 }

 /**
  * 内部c?nbsp; 字符串分割类
  */
 public class StringSpilt {
  /**
     *
     * 分割字符Ԍ原理Q检字W串中的分割字符Ԍ然后取子?br>     *
     * @param original 需要分割的字符?br>     *
     * @paran regex 分割字符?br>     *
     * @return 分割后生成的字符串数l?br>     *
     */   
    public String[] split(String original,String regex)   
    {
     // 取子串的起始位置       
        int startIndex = 0;       
        // 结果数据先攑օVector?nbsp;      
        Vector v = new Vector();       
        // q回的结果字W串数组       
        String[] str = null;                       
        // 存储取子串时起始位置       
        int index = 0;       
        // 获得匚w子串的位|?nbsp;      
        startIndex = original.indexOf(regex);                       
        // System.out.println("0" + startIndex);                       
        // 如果起始字符串的位置于字符串的长度Q则证明没有取到字符串末?nbsp;      
        // -1代表取到了末?nbsp;      
        while(startIndex < original.length() && startIndex != -1)           
        {           
            String temp = original.substring(index,startIndex);                                  
            // System.out.println(" " + startIndex);                                 
            // 取子?nbsp;          
            v.addElement(temp);           
            // 讄取子串的起始位置           
            index = startIndex + regex.length();           
            // 获得匚w子串的位|?nbsp;          
            startIndex = original.indexOf(regex,startIndex + regex.length());           
        }       
        // 取结束的子串       
        v.addElement(original.substring(index));                    
        // Vector对象转换成数l?nbsp;      
        str = new String[v.size()];       
        for(int i=0;i<v.size();i++)           
        {           
            str[i] = (String)v.elementAt(i);           
        }       
         // q回生成的数l?nbsp;      
        return str; 
    }
   
    /**
     * 功能描述:获取最后一个字W串
     * @author ZhouMingXing
     */
    public String getLastString(String[] values ){
     int length = values.length;
     if(length == 0){
      return null;
     }else{
      return values[length-1];
     }
    }
 }
 
 //试用?br> public static void main(String[] args){
  MyBean user = new MyBean();  
  try {
   new BeanWaper(user,new java.sql.ResultSet()).waperBean(result);
   System.out.println("最后结果信息如?"+"\n"+user.getId()+"  "+user.getName()+"  "+user.getNumber()+"  "+user.getMyBirthed()+"   "+user.getMyImage()+"   "+user.getPassword()+""+"");
  } catch (NumberFormatException e) {
   // TODO Auto-generated catch block
   System.out.println("9.打印异常信息如下:"+"\n"+e);
   
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   System.out.println("10.打印异常信息如下:"+"\n"+e);
  }
 }
}



2007-04-30 08:49 发表评论
]]>
վ֩ģ壺 ڶ| 㽭ʡ| ;| | | | ƾ| | | | | | | ξ| | Ϫ| | | | Ѱ| | ۳| | | | | | ͨ| γ| Ĵʡ| | | Ľ| û| | | Ϫ| | | ɽ| |