您的位置:首页 > 大数据 > 人工智能

在Grails中添加时间控件标签

2012-12-03 17:14 176 查看
在Grails中添加时间控件标签,以下代码是防止标签.groovy文件中

class MyTagLib {
static namespace = "my"
/**
* 该标签为更新预警所用,day month year 设定需要更新的时间
*/
def needChangeTimePicker={attrs,body->
def name=attrs.name
def format=attrs.format
def value=attrs.value
def precision=attrs.precision  //year month day hour minute
def day=attrs.day
def month=attrs.month
def year=attrs.year
Calendar cad = Calendar.getInstance();
def i=10
if(!precision){
precision="day"
}
if(precision=="year"){
i=4
}else if(precision=="month"){
i=7
}else if(precision=="day"){
i=10
}else if(precision=="hour"){
i=13
}else if(precision=="minute"){
i=16
}

if(!format){
format="yyyy-MM-dd"
}
if(day || month || year){
if(day){cad.add(Calendar.DAY_OF_MONTH, (int)day);}
if(month){cad.add(Calendar.MONTH, month.toInteger());}
if(year){cad.add(Calendar.YEAR, (int)year);}
value=new java.text.SimpleDateFormat(format).format(cad.getTime())
}else{
value=new java.text.SimpleDateFormat(format).format(value)
}

out<<"""
<input type='text' id='datepinker_id_${name}' name='datepinker_id_${name}'  value='${value}' class='Wdate' onClick=\"WdatePicker({dateFmt:'${format}'})\" onchange='checkDate${name}()' readonly='true' />
<input type='hidden' id='${name}' name='${name}' value='date.struct' />
"""
switch(i){
case 16: out<<"<input type='hidden' name='${name}_minute' id='${name}_minute' />\r\n"
case 13: out<<"<input type='hidden' name='${name}_hour' id='${name}_hour' />\r\n"
case 10: out<<"<input type='hidden' name='${name}_day' id='${name}_day' />\r\n"
case 7:  out<<"<input type='hidden' name='${name}_month' id='${name}_month'/>\r\n"
case 4:  out<<"<input type='hidden' name='${name}_year' id='${name}_year'/>\r\n"
}

out<<"""
<script type="text/javascript" src="${request.contextPath}/js/datepicker/WdatePicker.js"></script>

<script>
function checkDate${name}(){
var s=document.getElementById('datepinker_id_${name}').value;
//alert(s);
var len=s.length;
switch(${i}){
case 16:document.getElementById('${name}_minute').value=s.substr(14,2);
case 13:document.getElementById('${name}_hour').value=s.substr(11,2);
case 10:document.getElementById('${name}_day').value=s.substr(8,2);
case 7:document.getElementById('${name}_month').value=s.substr(5,2);
case 4:document.getElementById('${name}_year').value=s.substr(0,4);
}

}
"""
if(value){
out<<"""
checkDate${name}();
"""
}
out<<"""
</script>
"""
}
}


然后在GSP中调用

<my:needChangeTimePicker month="2" name="needChangeTime"  value="" />
month=2是在今天的时间上加上2个月,其中日,年,都可以设定
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐