springMVC表单控件问题?

开始日期:

<input  type="text" class="Wdate" id="startTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'endTime\')||\'new Date()\'}',readOnly:true})" style="width: 120px;"/>

截止日期:
<input  type="text"  class="Wdate" id="endTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'startTime\')}',maxDate:new Date(),readOnly:true})" style="width: 120px;"/>

结果为:

       

使用表单标签后:

起始日期:

<form:input path="startTime" type="text" class="Wdate" id="startTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'endTime\')||\'new Date()\'}',readOnly:true})" style="width: 120px;"/>

截止日期:

<form:input path="endTime" type="text"  class="Wdate" id="endTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'startTime\')}',maxDate:new Date(),readOnly:true})" style="width: 120px;"/>

结果为:

  

1.没有弹出时间了,原因是什么?在input中这样写,我也不知道为什么不会弹出时间,将此问题记录下来。

2.点击下一页没反应?


解决问题2:

当form表单中的数据是基本类型的时,直接请求action中的url,一点问题都没有。

但是当form表单总有时间类型的数据时,且对应的controller是用一个java对象来绑定对应form提交的数据时,就会出现问题。无法提交成功。

解决办法:

在对应的controller中新增下面的方法:

[java]  view plain  copy
  1. /** 
  2.      * form表单提交 Date类型数据绑定 
  3.      * <功能详细描述> 
  4.      * @param binder 
  5.      * @see [类、类#方法、类#成员] 
  6.      */  
  7. @InitBinder    
  8. public void initBinder(WebDataBinder binder) {    
  9.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
  10.         dateFormat.setLenient(false);    
  11.         binder.registerCustomEditor(Date.classnew CustomDateEditor(dateFormat, true));    
  12. }  

转自:点击打开链接


解决问题1:换种方式写代码

<form:input id="startTime" path="startTime" style="width: 120px;" class="Wdate" />

<form:input id="endTime" path="endTime" style="width: 120px;" class="Wdate" /> 

$(function() {
	$("#startTime").bind("click", {
		'startId' : 'startTime',
		'endId' : 'endTime'
	}, dateStart);
	$("#endTime").bind("click", {
		'startId' : 'endTime',
		'endId' : 'startTime'
	}, dateEnd);
})
function dateStart(obj) {
		var sId = obj.data.startId;
		var eId = obj.data.endId;
		var maxda = "";
		if ($("#" + eId).val() == "") {
			maxda = '%y-%M-%d';
		} else {
			maxda = '#F{$dp.$D(\'' + eId + '\')}';
		}
		WdatePicker({
			el : sId,
			autoPickDate : true,
			minDate : '#F{$dp.$D(\'' + eId + '\',{d:-30});}',
			maxDate : maxda,
			dateFmt : 'yyyy-MM-dd'
		});
	}

	//结束时间
	function dateEnd(obj) {
		var Id = obj.data.startId;
		var eId = obj.data.endId;
		var maxda = "";

		if ($("#" + eId).val() != "" && DateDiff($("#" + eId).val())) {
			maxda = '#F{$dp.$D(\'' + eId + '\',{d:+30});}';
		} else {
			maxda = '%y-%M-%d';
		}
		WdatePicker({
			el : Id,
			autoPickDate : true,
			minDate : '#F{$dp.$D(\'' + eId + '\')}',
			maxDate : maxda,
			dateFmt : 'yyyy-MM-dd'
		});
	}
	function DateDiff(str1) {
		var date1 = str1.split("-");

		var strDate1 = new Date(date1[0], date1[1] - 1, date1[2]);
		var strDate2 = new Date();// 当前时间

		return (strDate2.getTime() - strDate1.getTime()) / 1000 / 60 / 60 / 24 > 30;
	}

controller中添加:

@InitBinder    
		public void initBinder(WebDataBinder binder) { 
			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    
		    dateFormat.setLenient(false);    
		    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));    
		}
就没有报错了

猜你喜欢

转载自blog.csdn.net/qq_39986274/article/details/79806290