本文主要是介绍工作总结Java、Ajax 根据天、时、分实现三级联动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
效果展示:
/*** 描述:根据天、小时、实现三级联动<br>* 作者:liqijing <br>* 修改日期:2015-3-29下午11:34:01 <br>* E-mail: lijinginsistsmile@163.com <br>*/
public class DateTime {public static void main(String[] args) {String arr [] = getTimeMinute("今天",15);for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}/*** 方法名称: getOneDayTime<br>* 描述:获取今天还有多少小时 例如:22,23,24* 作者: liqijing* 修改日期:2015-3-29下午11:32:42* @param day* @return*/public static String[] getOneDayTime(String day) {int currentHour = getCurrentHour();String arryHours = "";int nextDayTime = 0;if("今天".equals(day)){for(int i=23 ; currentHour <= i ;){String ch = currentHour+"";if(ch.length() == 1){ch = "0"+ ch ;arryHours = arryHours + ch +",";}else {arryHours = arryHours + currentHour+",";}currentHour ++ ;}} else {for(int i=23 ; nextDayTime <= i ;){String ch = nextDayTime+"";if(ch.length() == 1){ch = "0"+ ch ;arryHours = arryHours + ch +",";}else {arryHours = arryHours + nextDayTime+",";}nextDayTime ++ ;}}return arryHours.split(",");}/*** 方法名称: getTimeMinute<br>* 描述:获取每小时还要多少分钟五分制 例如:05,10,15,20* 作者: liqijing* 修改日期:2015-3-29下午11:32:51* @param day* @param time* @return*/public static String[] getTimeMinute(String day,int time){int currentHour = getCurrentHour();String currentMinutes = "" ;Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());int currentMinute = calendar.get(Calendar.MINUTE) ;int nextTimeMinute = 0;if("今天".equals(day)){if(currentHour == time){for(int i=60 ;currentMinute <= i ; ){if((currentMinute%5)==0){String ch = currentMinute+"";if(ch.length()==1){ch = "0"+ch ;currentMinutes = currentMinutes + ch+",";} else {currentMinutes = currentMinutes + currentMinute+""+",";}}currentMinute ++ ;}} else {currentMinute = 0;for(int i=60 ;currentMinute <= i ; ){if((currentMinute%5)==0){String ch = currentMinute+"";if(ch.length()==1){ch = "0"+ch ;currentMinutes = currentMinutes + ch+",";} else {currentMinutes = currentMinutes + currentMinute+""+",";}}currentMinute ++ ;}}} else {for(int i=60 ;nextTimeMinute <= i ; ){if((nextTimeMinute%5)==0){String ch = nextTimeMinute+"";if(ch.length() == 1){ch = "0"+ch ;currentMinutes = currentMinutes + ch+",";}else {currentMinutes = currentMinutes + nextTimeMinute+""+",";}}nextTimeMinute ++ ;}}return currentMinutes.split(",") ;}/*** 方法名称: getCurrentHour<br>* 描述:获取当前小时 HH24制* 作者: liqijing* 修改日期:2015-3-29下午11:35:24* @return*/@SuppressWarnings("deprecation")public static int getCurrentHour(){Date date = new Date();int currentHour = date.getHours();return currentHour ;}}
Struts2 实现 Action 部分:
/*** 描述:Action部分 根据天、小时、实现三级联动<br>* 作者:liqijing <br>* 修改日期:2015-3-29下午11:34:01 <br>* E-mail: lijinginsistsmile@163.com <br>*/
public class SysUserAction extends ActionSupport implements SessionAware,RequestAware {private static final long serialVersionUID = 1L;private SysUser sysuser;private Map<String, Object> request;private String code;private String day ;private String hour ;private String minute ;/*** 方法名称: initSysUser<br>* 描述:初始化 例如:22,23,24* 作者: liqijing* 修改日期:2015-3-29下午11:32:42* @param day* @return*/public String initSysUser(){HttpServletRequest request = ServletActionContext.getRequest();String project = request.getContextPath();int currentHour = DateTime.getCurrentHour();String time [] = DateTime.getOneDayTime("今天");String minute [] = DateTime.getTimeMinute("今天", currentHour);this.request.put("time", time);this.request.put("minute", minute);this.request.put("currentHour", currentHour) ;this.request.put("project", project);return "init" ;}/*** 方法名称: gethour<br>* 描述:Ajax 请求选择小时二级联动* 作者: liqijing* 修改日期:2015-3-29下午11:32:42* @param day* @return*/public void gethour() throws IOException {System.out.println("进来了........");HttpServletResponse response = ServletActionContext.getResponse();HttpServletRequest request = ServletActionContext.getRequest();PrintWriter out = response.getWriter();String hour [] = DateTime.getOneDayTime(this.day);String minute [] = null ;if(this.hour.substring(0) == "0"){minute = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour.substring(1)));}else {minute = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour));}request.setAttribute("hour", hour);request.setAttribute("minute", minute);if (hour.length > 0 && minute.length > 0) {String arr = "" ;for(int i=0;i<minute.length ;i++){arr = arr +minute[i]+"," ;}arr.substring(0,arr.length()-1);System.out.println(arr);out.print(arr);} else {out.print("false");}out.close();}/*** 方法名称: getDayHour<br>* 描述:Ajax 请求选择天三级联动* 作者: liqijing* 修改日期:2015-3-29下午11:32:42* @param day* @return*/public void getDayHour() throws IOException {System.out.println("进来了........");HttpServletResponse response = ServletActionContext.getResponse();PrintWriter out = response.getWriter();String hour [] = DateTime.getOneDayTime(this.day);String minute [] = null ;if("今天".equals(this.day)){minute = DateTime.getTimeMinute(this.day, DateTime.getCurrentHour());} else {if(this.hour.substring(0) == "0"){minute = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour.substring(1)));}else{minute = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour));}}if (hour.length > 0 && minute.length > 0) {String arrminuteArrhour = "";String arrminute = "" ;String arrhour = "?," ;for(int i=0;i<minute.length ;i++){arrminute = arrminute +minute[i]+"," ;}for(int i=0;i<hour.length ;i++){arrhour += hour[i]+"," ;}arrminuteArrhour = arrminute+ arrhour ; System.out.println(arrminuteArrhour);out.print(arrminuteArrhour);} else {out.print("false");}out.close();}}
HTML部分:
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"><select name="day" id="day" οnchange="queryDay()"></span></div> <option value="今天">今天</option>
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"> <select name="hour" id="hour" οnchange="queryTime()"></span></div> <option value="明天">明天</option></select> <div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"> <option value="${it }">${it } </option></span></div> <s:iterator var="it" value="#request.time"></s:iterator></select> 时
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"> <select name="minute" id="minute"></span></div> <input type="hidden" id="project" value="${request.project }"><s:iterator var="min" value="#request.minute">
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"> </select> 分</span></div> <option value="${min }">${min }</option>
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"> </s:iterator></span></div>
JavaScript部分:
<script type="text/javascript">function queryTime(){var hour = $("#hour").val();var day = $("#day").val();var project = $("#project").val();if(true){$.post(project+"/loginAction!gethour",{"day":day,"hour":hour},function(data){var v = data ;if(data =! ""){var arr = v.split(',');var selOpt = $("#minute option");selOpt.remove();for(var i in arr){if(arr[i] != ""){$("#minute").append("<option value='"+arr[i]+"'>"+arr[i]+"</option>");}}}else{alert("失败");}});}}function queryDay(){var hour = $("#hour").val();var day = $("#day").val();var project = $("#project").val();if(true){$.post(project+"/loginAction!getDayHour",{"day":day,"hour":hour},function(data){var v = data ;if(data =! ""){var arr1 = v.substring(v.indexOf('?'));// str.substring(str.indexOf('>')+1,str.lastIndexOf('<'))var arr2 = v.substring(0,v.indexOf('?')) ;var arrMinute = arr2.split(',');var arrHour = arr1.split(',');var selOptMinute = $("#minute option");selOptMinute.remove();var selOptHour = $("#hour option");selOptHour.remove();for(var i in arrMinute){if(arrMinute[i] != ""){$("#minute").append("<option value='"+arrMinute[i]+"'>"+arrMinute[i]+"</option>");}}for(var i in arrHour){if(arrHour[i] != "" && arrHour[i] != "?"){$("#hour").append("<option value='"+arrHour[i]+"'>"+arrHour[i]+"</option>");}}}else{alert("失败");}});}}
</script>
很高兴与你们分享:
希望对需要实现根据天、小时、实现三级联动的朋友们有帮助!
谢谢!
这篇关于工作总结Java、Ajax 根据天、时、分实现三级联动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!