首先引入calendar.js文件,js文件源代碼如下:
//這個方法用來進行日期的前一天和後一天的移動 function beforeday(obj) { /** *獲取日期文本框的值將獲取到得值賦值給變量 **/ var starthidden=document.getElementById("text1").value; var endhidden=document.getElementById("text2").value; /** *正則匹配日期 **/ var reg = /^(/d{4})-(/d{1,2})-(/d{1,2})/; /** *如果傳入的值爲1 將日期加上一天 *如果傳入的值爲-1 將日期加減去一天 **/ if(obj==1) { //alert("1=="+obj); //給開始日期賦值 if(reg.test(starthidden)) { //調用進行日期的加減的方法dateAdd var d = dateAdd(RegExp.$1,RegExp.$2,RegExp.$3,1); starthidden=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(); document.getElementById("text1").value=starthidden; //alert("text1賦值後的值爲:"+starthidden); } //給結束日期賦值 if(reg.test(endhidden)) { //調用進行日期的加減的方法dateAdd var d = dateAdd(RegExp.$1,RegExp.$2,RegExp.$3,1); endhidden=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(); document.getElementById("text2").value=endhidden; //alert("text2賦值後的值爲:"+endhidden); } }else { //alert("-1=="+obj); if(reg.test(starthidden)) { //調用進行日期的加減的方法dateAdd var d = dateAdd(RegExp.$1,RegExp.$2,RegExp.$3,-1); starthidden=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(); document.getElementById("text1").value=starthidden; //alert("text1賦值後的值爲:"+starthidden); } if(reg.test(endhidden)) { //調用進行日期的加減的方法dateAdd var d = dateAdd(RegExp.$1,RegExp.$2,RegExp.$3,-1); endhidden=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(); document.getElementById("text2").value=endhidden; //alert("text2賦值後的值爲:"+endhidden); } } } //這個方法用來進行日期的加減 function dateAdd(y,m,d,n) { var d = new Date(y,m-1,d); d.setDate(d.getDate()+n); return d; }
ByqHoursDataAction類源代碼:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.mww.biz.ByqHhDataService; import com.mww.entity.ByqDayData; import com.mww.entity.ByqHhData; /** * MyEclipse Struts * Creation date: 09-04-2009 * * XDoclet definition: * @struts.action validate="true" */ public class ByqHoursDataAction extends DispatchAction { /* * Generated Methods */ /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ private ByqHhDataService service = null; public ByqHhDataService getService() { return service; } public void setService(ByqHhDataService service) { this.service = service; } //實現 日數據 小時數據的查詢 和 日期的前一天和後一天的移動來查詢數據 public ActionForward selectByqHoursData(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { try { String option = request.getParameter("select"); String byqid = request.getParameter("textByqid"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String text1 = request.getParameter("text1"); String text2 = request.getParameter("text2"); Date time1 = format.parse(text1+" 00:00:00"); Date time2 = format.parse(text2+" 23:59:59"); //日數據 if("0".equals(option)||option=="0"){ List<ByqDayData> byqDayList = service.selectbyq_Day(byqid, time1, time2); request.setAttribute("text1", text1); request.setAttribute("text2", text2); request.setAttribute("list", byqDayList); return mapping.findForward("day"); } //小時數據 if("1".equals(option)||option=="1"){ List<ByqHhData> byqHourslist = service.selectbyq_Hours(byqid, time1, time2); request.setAttribute("text1", text1); request.setAttribute("text2", text2); request.setAttribute("byqHourslist", byqHourslist); return mapping.findForward("Hours"); } } catch (ParseException e) { e.printStackTrace(); } return null; } }
shwoByqHoursData.jsp 頁面源代碼:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="bean" uri="/WEB-INF/struts-bean.tld"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>變壓器小時數據</title> <link href="css/common.css" mce_href="css/common.css" rel="stylesheet" type="text/css" /> <mce:style type="text/css"><!-- ing{border:0;} A{ font-size:12px;} A:hover{ font-size:12px; text-decoration:underline; color:#ff7000;} td{ font-size:12px; line-height:20px;} --></mce:style><style type="text/css" mce_bogus="1"> ing{border:0;} A{ font-size:12px;} A:hover{ font-size:12px; text-decoration:underline; color:#ff7000;} td{ font-size:12px; line-height:20px;} </style> <mce:script type="text/javascript" src="js/calendar.js" mce_src="js/calendar.js"></mce:script><!-- 前一天|後一天 --> <mce:script type="text/javascript" src="My97DatePicker/WdatePicker.js" mce_src="My97DatePicker/WdatePicker.js"></mce:script><!-- 日期選擇 --> </head> <mce:script type="text/javascript"><!-- //這個進行前一天和後一天的時間的變化 然後在查詢 function beforeday1(obj) { beforeday(obj); document.getElementById("myform").submit(); } // --></mce:script> <body> <h2 align="center"><strong> 變壓器小時數據查詢結果</strong></h2> <form action="byqHoursData.do?method=selectByqHoursData" name="myform" method="post" id="myform" οnsubmit="return selectDayandHours2()"> <table border="1" bordercolor="#99CCFF" cellpadding="0" cellspacing="0" width="100%"> <thead> <tr bgcolor="#FFCCFF"> <td width="35%" align="center" class="tab-row"><strong>起始日期:</strong> <input name="text1" type="text" id="text1" value="${text1}" class="Wdate" οnclick="new WdatePicker(this,null,false,'whyGreen')" style="width:150px;" height="18" readonly="readonly"/> </td> <td width="30%"><strong>結束日期:</strong> <input name="text2" type="text" id="text2" value="${text2}" class="Wdate" οnclick="new WdatePicker(this,null,false,'whyGreen')" style="width:150px;" height="18" readonly="readonly"/> </td> <td width="42%"><div> <select name="select" id="select" style="width:80"> <option value="1">小時數據</option> </select> <input type="submit" class="buttons" id="sbtn2" name="sbtn2" value="查 詢"> <a href="javascript:beforeday1(-1)" mce_href="javascript:beforeday1(-1)">《前一天 </a>| <a href="javascript:beforeday1(1)" mce_href="javascript:beforeday1(1)">後一天 》</a> <a href="javascript:AutomateExcel();" mce_href="javascript:AutomateExcel();"> <img src="images/chartlogo.gif" mce_src="images/chartlogo.gif" width="16" height="16" border="0"> </a> </div> </td> </tr> </thead> <tfoot> </tfoot> </table> <c:if test="${empty byqHourslist}"> <h2 align="center"><strong>對不起!沒有找到您需要的數據!</strong></h2> </c:if> <c:if test="${!empty byqHourslist}"> <table width="100%" border="1" bordercolor="#99CCFF" cellpadding="0" cellspacing="0"> <tr bgcolor="#FFCCFF" align="center"> <td rowspan="2"> </td> <td rowspan="2">名稱</td> <td rowspan="2">時間</td> <td rowspan="2">有功表碼 </td> <td rowspan="2">無功表碼</td> <td rowspan="2">有功功率</td> <td rowspan="2">無功功率</td> <td colspan="3">電壓</td> <td colspan="3">電流</td> </tr> <tr bgcolor="#FFCCFF" align="center"> <td>A相</td> <td>B相</td> <td>C相</td> <td>A相</td> <td>B相</td> <td>C相</td> </tr> <c:set var="i" value="0"></c:set> <c:forEach items="${byqHourslist}" var="byqhours"> <c:set var="i" value="${i+1}"></c:set> <tr align="center"> <td>${i}</td> <td> ${byqhours.id.gatherid} <input type="hidden" id="textByqid" name="textByqid" value="${byqhours.id.gatherid}"> </td> <td><bean:write format="yyyy-MM-dd HH:mm" name="byqhours" property="id.ddate" /></td> <td>${byqhours.psum}</td> <td>${byqhours.npsum}</td> <td>${byqhours.powervalue}</td> <td>${byqhours.unpowervalue}</td> <td>${byqhours.avoltage}</td> <td>${byqhours.bvoltage}</td> <td>${byqhours.cvoltage}</td> <td>${byqhours.acurr}</td> <td>${byqhours.bcurr}</td> <td>${byqhours.ccurr}</td> </tr> </c:forEach> </table> </c:if> </form> </body> </html>
文章目錄一、背景介紹二、一鍵啓動腳本三、一鍵停止腳本 一、背景介紹 項目開發時使用gradle構建工具進行項目構建開發,藉助application插件進行項目打包。 ./gradlew clean build 執行以上命令後,g
文章目錄一、背景二、基本知識三、實現原理 一、背景 在mysql表中有一個字符串類型的字段,裏面儲存了JSON格式的數組。 由於mysql單個字段的長度是有限的,若JSON數組太長,容易出現長度溢出的異常,所以要將該字段轉換爲一張
一致性hash算法java實現 import java.util.Collection; import java.util.SortedMap; import java.util.TreeMap; /** * 一致性Hash算法 算
需求單位 需求部門 需求聯繫人 期望完成日期 需求名稱 需求概述
1. 循環list中的所有元素然後刪除重複 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size
最近在做quartz的動態時間設置時碰見了一個類方法無法序列化的問題,但是該方法我已經實現了java.io.Serializable的接口了,所以很迷茫,經過詢問同事瞭解到如果想序列化某一個類,必須保證這個類中的所有對象都
反射的使用場景: 反射的機制是很多Java框架的基本組成部分,現在很多開源框架都已經給你基本封裝好了,Hibernate,Spring等框架都用到反射,就是在xml和properties寫好配置,然後根據字符串得到某個類的實例,這樣可以動
註解使用的場景: 做過web開發的都知道,很多開發框架都使用註解,比如Spring中如下代碼: @RequestMapping(value="/inputPerson") public String inputPerson(){
實現思路:spring aop切入到bean,在需要寫日誌的方法加入註解AuditLog,如果沒有註解的方法則不記錄日誌。 註解類 @Target({ElementType.PARAMETER, ElementType.METHOD})
項目中很多地方需要導出excel數據,因此需要將導出excel數據封裝成工具類。實現思路: 1、將查詢結果List<T>以及T作爲入參。 2、新建一個註解,在T對象需要生成表格數據的字段加上這個註解。供外部調用
事件驅動4個要素: 事件、事件源、註冊中心(事件通道)、偵聽器。 事件驅動和觀察者模式本質一樣,事件驅動是觀察者模式的經典實現。 事件驅動的好處: 1、 無耦合的關聯,事件發佈者和訂閱者不需要預先知道彼此的存在。 2、 異步消息傳遞,業
本次我們要編寫一個輸出問候信息的小例子: 當一個人在中國的時候,使用中國話向大家問好。當他去國外旅遊時就需要用英語向大家問好。 首先我們得了解創建一個基於Spring IOC的小程序的具體步驟如下: 1) 建立Spring工程 2
Spring容器中的Bean擁有明確的生命週期,由多個特定的生命階段組成,每個生命階段都允許外界對Bean施加控制。在Spring中,我們從Bean的作用範圍和實例化Bean時所經歷的一系列階段來描述Bean的生命週期: 接下來,我們從B
首先我們來看一下以前我們是如何手動裝配一個bean的: 先看一段java程序: public class Customer { private Person person; public void setPerson(
Spring Bean 中所說的作用域,在配置文件中即是“scope” 在面向對象程序設計中作用域一般指對象或變量之間的可見範圍。 而在Spring容器中是指其創建的Bean對象相對於其他Bean對象的請求可見範圍。 在Spring 容