springmvc web项目常见配置

pom.xml


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.hikvision</groupId>
  <artifactId>vehicle</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>vehicle Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>


  <properties>
    <!--  spring 版本号 -->
    <spring.version>4.3.10.RELEASE</spring.version>

    <!-- druid 版本号-->
    <druid.version>1.0.29</druid.version>

    <!-- mybatis版本号 -->
    <mybatis.version>3.4.1</mybatis.version>
    <mybatis.spring.version>1.3.0</mybatis.spring.version>

    <!-- postgres版本号 -->
    <postgresql.version>9.4-1204-jdbc41</postgresql.version>

    <!-- freemarker版本号-->
    <freemarker.version>2.3.22</freemarker.version>

    <!-- fastjson 版本号-->
    <jackson.databind.version>2.9.0</jackson.databind.version>
    <jackson.mapper.asl.version>1.9.12</jackson.mapper.asl.version>

    <!-- log4j版本号-->
    <log4j.version>1.7.2</log4j.version>

    <!-- dubbo版本号-->
    <dubbo.version>2.5.3</dubbo.version>
    <zkclient.version>0.10</zkclient.version>

    <!-- redis版本号-->
    <jedis.version>2.9.0</jedis.version>
    <spring-data-redis.version>1.8.0.RELEASE</spring-data-redis.version>
    <cache-api.version>1.0.0</cache-api.version>

    <!-- httpclient版本号-->
    <httpclient.version>4.5.2</httpclient.version>

    <!-- dom4j版本号-->
    <dom4j.version>1.6.1</dom4j.version>

    <!-- gjson版本号 -->
    <gson.version>2.8.0</gson.version>


  </properties>


  <dependencies>
    <!--====================spring依赖包 start====================-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
      <version>4.2.4.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-config</artifactId>
      <version>4.2.4.RELEASE</version>
    </dependency>


    <!--====================spring依赖包 end====================-->

    <!--====================数据库连接依赖 start====================-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>${druid.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>${mybatis.spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>${postgresql.version}</version>
    </dependency>
    <!--====================数据库连接依赖 end====================-->

    <!--====================log4j  start====================-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <!--====================log4j  end====================-->

    <!--====================视图解析器 start====================-->
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>${freemarker.version}</version>
    </dependency>
    <!--====================视图解析器  end====================-->

    <!--====================fastjson start====================-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>${jackson.databind.version}</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>${jackson.mapper.asl.version}</version>
    </dependency>
    <!--====================fastjson  end====================-->

    <!--====================dubbo start====================-->
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>${zkclient.version}</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>${dubbo.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.springframework</groupId>
          <artifactId>spring</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!--====================dubbo  end====================-->

    <!--====================redis  start====================-->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>${jedis.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-redis</artifactId>
      <version>${spring-data-redis.version}</version>
    </dependency>

    <dependency>
      <groupId>javax.cache</groupId>
      <artifactId>cache-api</artifactId>
      <version>${cache-api.version}</version>
    </dependency>
    <!--====================redis  end====================-->

    <!--====================httpclient start====================-->
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>${httpclient.version}</version>
    </dependency>
    <!--====================httpclient  end====================-->

    <!--====================dom4j start====================-->
    <dependency>
      <groupId>dom4j</groupId>
      <artifactId>dom4j</artifactId>
      <version>${dom4j.version}</version>
    </dependency>
    <!--====================dom4j  end====================-->

    <!--====================gson start====================-->
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>${gson.version}</version>
    </dependency>
    <!--====================gson  end====================-->


    <!--====================oracle start====================-->
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0.3</version>
    </dependency>
    <!--====================oracle  end====================-->

    <dependency>
      <groupId>com.mashape.unirest</groupId>
      <artifactId>unirest-java</artifactId>
      <version>1.4.9</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>RELEASE</version>
    </dependency>
  </dependencies>




  <build>
    <finalName>vehicle</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring/applicationContext*.xml,
                  classpath*:spring/spring-security.xml
    </param-value>
  </context-param>

  <!-- 浏览器不支持put,delete等method,由该filter将/xxx?_method=delete转换为标准的http delete方法 -->
  <filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>

  <filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <servlet-name>spring-mvc</servlet-name>
    <!--<url-pattern>/*</url-pattern>-->
  </filter-mapping>

  <filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>spring-mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:spring/spring-mvc-servlet.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

spring-mvc-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.hikvision.vehicle.controller"/>
    <mvc:annotation-driven >
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                        <property name="dateFormat">
                            <bean class="java.text.SimpleDateFormat">
                                <constructor-arg type="java.lang.String" value="yyyy-MM-dd" />
                            </bean>
                        </property>
                    </bean>
                </property>
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html; charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html; charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!-- 设置freeMarker的配置文件路径 -->
    <bean id="freemarkerConfiguration"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <!--注释掉的下方代码是指引freemarker的基本信息的配置位置,因为我已经将配置信息移到了applicationContext文件下,所以这里就没必要存在了,不注释也不会有问题的 -->
        <!--<property name="location" value="classpath:/WEB-INF/config/freemarker.properties" />-->
    </bean>

    <bean id="freemarkerConfig"
          class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/views/" />
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">0</prop>
                <prop key="default_encoding">UTF-8</prop>
                <prop key="number_format">0.##########</prop>
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                <prop key="classic_compatible">true</prop>
                <prop key="template_exception_handler">ignore</prop>
            </props>
        </property>
    </bean>

    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="exposeRequestAttributes" value="true" />
        <property name="exposeSessionAttributes" value="true" />
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
        </property>
        <property name="cache"><value>true</value></property>
        <!--这里需要注意一下,我注释了下面这样一行代码,这行代码的意思就是指引freemarker需要解析的文件的位置。注释掉原因是因为
         applicationContext.xml里有这样一行代码:<property name="templateLoaderPath" value="/WEB-INF/views/" /> 已经指定了视图位置。如果我们这里依然保留下方代码,页面回报406的找不到的错误 -->
        <!--<property name="prefix"><value>/views/</value></property>-->
        <property name="suffix"><value>.html</value></property>
        <property name="contentType">
            <value>text/html; charset=UTF-8</value>
        </property>
    </bean>


    <mvc:resources mapping="/js/**" location="/js/" />
    <!--<mvc:resources mapping="/css/**" location="/css/" />-->
    <mvc:resources mapping="/image/**" location="/image/" />


</beans>


applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:property-placeholder location="classpath*:*.properties" />

    <context:component-scan base-package="com.hikvision.vehicle" >
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <!--数据源org.apache.commons.dbcp.BasicDataSource com.alibaba.druid.pool.DruidDataSource -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.userName}" />
        <property name="password" value="${jdbc.password}" />

        <!-- druid 连接池的 -->
        <property name="filters" value="stat" />
        <!-- 下面druid 和 dbcp 连接池通用的 ↓↓↓↓↓↓↓↓↓↓↓↓ -->
        <!--maxActive: 最大连接数量 -->
        <property name="maxActive" value="20" />
        <!--initialSize: 初始化连接 -->
        <property name="initialSize" value="3" />
        <property name="validationQuery">
            <value>SELECT 1 from dual</value>
        </property>

    </bean>

    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath*:mappings/*.xml"></property>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.hikvision.vehicle.mapper"></property>
        <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

</beans>


spring-security.xml:

<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/security
          http://www.springframework.org/schema/security/spring-security.xsd">

    <http auto-config="true" use-expressions="true">
        <intercept-url pattern="/login" access="permitAll" />
        <intercept-url pattern="/image" access="permitAll" />
        <intercept-url pattern="/*" access="hasRole('ROLE_USER')" />
        <form-login login-page="/login" always-use-default-target="true" default-target-url="/index"
                    authentication-failure-url="/login?error=1" />
        <logout logout-url="/logout" logout-success-url="/login" invalidate-session="true"/>
        <csrf disabled="true" />
    </http>

    <authentication-manager>
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource"
                                 users-by-username-query="SELECT INDEX_CODE USERNAME, LOGIN_PWD password, 1 enabled FROM USER_INFO@link86 where INDEX_CODE = ?"
                                 authorities-by-username-query="select INDEX_CODE username, 'ROLE_USER' authority from USER_INFO@link86 where INDEX_CODE = ?"></jdbc-user-service>
        </authentication-provider>
    </authentication-manager>

</beans:beans>


db.properties:

# ============test============
#jdbc.driverClassName=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#jdbc.userName=root
#jdbc.password=root



# ============oracle============
# jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
# jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
# jdbc.userName=test
# jdbc.password=test

# ============mysql============
# jdbc.driverClassName=com.mysql.jdbc.Driver
# jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
# jdbc.userName=root
# jdbc.password=root

# ============postgresql=================
#jdbc.driverClassName = org.postgresql.Driver
#jdbc.url = jdbc:postgresql://10.33.26.125:5432/image_text?characterEncoding=utf-8
#jdbc.userName = image_text
#jdbc.password = image_text
#jdbc.maxActive= 50


jdbc.driverClassName = oracle.jdbc.driver.OracleDriver
jdbc.url = jdbc:oracle:thin:@10.33.26.100:1521:orcl
#jdbc.url = jdbc:oracle:thin:@190.192.3.92:1521:orcl
jdbc.userName = test
jdbc.password = test



log4j.properties:

log4j.rootLogger=info,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n  

#log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.File=/opt/log_
#log4j.appender.file.DatePattern=yyyy-MM-dd.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 打印sql语句:debug; 执行结果:trace
## 指定mapper配置文件中的namespace
log4j.logger.mapperNS =TRACE


login.html
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <title></title>
    <link rel="stylesheet" href="js/bootstrap/css/bootstrap.css" />

    <style type="text/css">
        .form{
            background: rgba(255,255,255,0.3);
            width:500px;
            height: 250px;
            position: absolute;
            left:50%;
            top:50%;
            margin-left:-250px;
            margin-top:-150px;
            border-radius: 10px;
            text-align: center;
        }
        /*.form{background: red;width:400px;margin:250px auto;}*/

        .errorMessage{
            text-align: left;
            color:red;
        }

    </style>

</head>

<body style="background:url('image/bg.jpg') no-repeat;background-size:cover;">

    <div class="container" >
        <form class="form-horizontal form" id="login_form" action="login" method="post">
            <h3 class="form-title">test</h3>

            <div class="form-group">
                <label id="errMessage" class="col-sm-6 control-label errorMessage">${errorMessage}</label>
            </div>
            <div class="form-group">
                <label class="col-sm-4 control-label">用户名:</label>
                <div class="col-sm-6">
                    <input class="form-control" name="username" type="text" placeholder="用户名...">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-4 control-label">密码:</label>
                <div class="col-sm-6">
                    <input class="form-control" id="password123" type="password" placeholder="密码...">
                    <input class="form-control" id="password" name="password" type="password" placeholder="密码..." style="display: none">
                </div>
            </div>

            <div class="form-group col-md-offset-3">
                <button type="submit" class="btn btn-success" style="margin-left:250px;" name="submit">登录</button>
            </div>
        </form>
    </div>

</body>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="js/md5.js"></script>

<script type="text/javascript">
    $("#password123").change(function(){
        $("#password").val(hex_md5($("#password123").val()));
    });
</script>

</html>


index.html
 
 
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title></title>
    <link rel="stylesheet" href="js/bootstrap/css/bootstrap.css" />
    <link rel="stylesheet" href="js/bootstrap-table/bootstrap-table.min.css" />
    <link rel="stylesheet" href="js/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css" />

    <style type="text/css">


        body{
            background:rgb(251, 251, 251);
        }

        #fixedTop{
            position:fixed;
            top:0px;
            background:#6085FF;
            width:100%;
            height: 60px;
            line-height: 65px;
            padding:0 20px;
            z-index: 1030;
        }

        .logo{
            background-image: url('image/logo.png');
            width:40px;
            height: 40px;
            position:relative;
            top:50%;
            transform: translateY(-50%);
            background-repeat: no-repeat;
            background-position: 50% 50%;
            float:left;
        }

        .systemName{
            float:left;
            font-size: 18px !important;
            color:#ffffff;
            margin-left:10px;
        }


        .logout{
            float:right;
            font-size: 18px !important;
            color:#ffffff;
            margin-right:20px;
        }


        @media (min-width: 1200px){
            .content {
                left:0px;
                right: 0px;
            }
        }

        @media (min-width: 1500px){
            .content {
                left:150px;
                right: 150px;
            }
        }

        .content {
            position:absolute;
            top:60px;
            bottom:0px;
            background:#ffffff;
            padding:20px;
            min-width:1100px;
        }

        #table1 thead {
            background:#fafafa;
        }

        #table1 thead th{
            text-align: center;
        }


    </style>

</head>

<body>

<div id="fixedTop">
    <div class="logo"></div>
    <div class="systemName" >test</div>
    <a class="logout" href="logout">退出</a>
</div>

<div class="content">
    <div class="panel panel-default">
        <div class="panel-heading">查询条件</div>
        <div class="panel-body">
            <form id="formSearch" class="form-horizontal">
                <div class="form-group">
                    <label class="control-label col-md-1" >状态:</label>
                    <div class="col-md-2">
                        <select id="devtimerealiable" class="form-control">
                            <!--<option value="-1">请选择</option>-->
                            <!--<option value="1">可信任</option>-->
                            <option value="2" selected>不可信</option>
                        </select>
                    </div>
                    <label class="control-label col-md-1" style="padding-right: 0px;">时间:</label>
                    <div class="col-md-3">
                        <input id="startTime" class="form-control form_date"  value="${curHour}" >
                    </div>
                    <label class="control-label col-md-1" style="width:1px;">-</label>
                    <div class="col-md-3">
                        <input id="endTime" class="form-control form_date" value="${curTime}" >
                    </div>
                    <div class="col-md-1" style="text-align:right;">
                        <button type="button" id="btn_query" class="btn btn-primary">查询</button>
                    </div>
                </div>
            </form>
        </div>
    </div>

    <table id="table1" class="table"></table>
</div>




<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/tableExport/libs/pdfmake/pdfmake.min.js"></script>
<script type="text/javascript" src="js/tableExport/libs/pdfmake/vfs_fonts.js"></script>
<script type="text/javascript" src="js/tableExport/libs/FileSaver/FileSaver.min.js"></script>
<script type="text/javascript" src="js/tableExport/tableExport.js"></script>
<script type="text/javascript" src="js/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/bootstrap-table/bootstrap-table.min.js"></script>
<script type="text/javascript" src="js/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script type="text/javascript" src="js/bootstrap-table/extensions/export/bootstrap-table-export.js"></script>
<script type="text/javascript" src="js/bootstrap-datetimepicker/js/moment.js"></script>
<script type="text/javascript" src="js/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="js/bootstrap-datetimepicker/js/zh-cn.js"></script>
<script type="text/javascript">

    $(".form_date").datetimepicker({
        locale: moment.locale('zh-cn'),
        format: "YYYY-MM-DD HH:mm:ss",
    });

    var first = true;

    $("#btn_query").click(function(){

        if(checkTime()){

            $("#btn_query").attr("disabled", true);

            if(first){
                $("#table1").bootstrapTable({
                    columns:[
                        {
                            field: 'CROSSING_INDEX',
                            title: '编码',
                        },
                        {
                            field: 'CROSSING_NAME',
                            title: '名称',
                        },
                        {
                            field: 'PASSTIME',
                            title: '时间',
                        },
                        {
                            field: 'DEVUPLOADTIME',
                            title: '上传时间',
                        },
                        {
                            field: 'TDARECEIVETIME',
                            title: '接收时间 ',
                        },
                        {
                            field: 'PLATENO',
                            title: '号码',
                        }
                    ],
                    url:"vehicleNormalData",
                    method:'get',
                    sidePagination: 'server',
                    pageNumber: 1,//这默认页码
                    pageSize: 10, //每页的记录行数(*)
                    pageList: [5, 10, 50],
                    pagination:true,
                    queryParams:function(params){

                        var pagesize = 99999999;
                        var offset = 0;
                        if(params.limit != undefined){
                            pagesize = params.limit + params.offset;
                            offset = params.offset;
                        }

                        return {
                            pageSize : pagesize, //每一页的数据行数,默认是上面设置的10(pageSize)
                            offset : offset, //当前页面,默认是上面设置的1(pageNumber)
                            devtimerealiable: $("#devtimerealiable").val(),
                            startTime: $("#startTime").val(),
                            endTime: $("#endTime").val(),
                        };
                    },
                    showExport:true,
                    exportDataType:"all",
                    exportTypes:['csv','excel'],
                    Icons:'glyphicon-export',
                    rowStyle: function (row, index) {
                        if(index % 2 == 0){
                            return {css:{'background':'#ffffff'}}
                        }else{
                            return {css:{'background':'#fafafa'}}
                        }
                    },
                    onLoadSuccess:function(){
                        $("#btn_query").attr("disabled", false);
                    }
                });
                first = false;
            }else{
                $('#table1').bootstrapTable('refresh');
            }



        }else{
            return false;
        }
    })

    function checkTime(){
        var starttime = $("#startTime").val(),
            endtime = $("#endTime").val();

        var curDay = new Date().getDate();

        var startDay = starttime.substr(8,2);
        var endDay = endtime.substr(8,2);

        if(starttime > endtime){
            alert("开始时间不能大于结束时间");
            return false;
        }else if(startDay != curDay || endDay != curDay){
            alert("对不起,系统暂时只支持当天数据查询");
            return false;
        }else{
            if(startDay != endDay){
                alert("查询时间不能跨天");
                return false;
            }else{
                return true;
            }
        }


    }



</script>


</body>

</html>




猜你喜欢

转载自blog.csdn.net/Fisher_yu01/article/details/80338944
今日推荐