Spring MVC异步刷新Web端代码

springmvc+quartz实现定时任务页面配置化管理动态修改定时任务、实时关闭、立即执行等 公司项目原先采用springmvc自带定时任务,新增一个定时任务时麻烦存在重复性工作而且不灵活没有页面展示。 废话不说,开干,定时任务数据配置存储在数据库 pom.xml //加入Quartz依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quar... 阅读详情
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<c:set var="baseUrl" value="${pageContext.request.contextPath}"></c:set>
<html lang="en-US">
<head>
<head>
<title>ACDP Dashboard</title>

<script type="text/javascript" src="${baseUrl}/resources/js/jquery/jquery-1.9.0.js"></script>
<script type="text/javascript">
    var j = jQuery.noConflict(true);
</script>

<link rel="stylesheet" type="text/css" href="${baseUrl}/resources/css/focusStyles.css" />

<script type="text/javascript" src="${baseUrl}/resources/js/report.script.js"></script>
<script type="text/javascript" src="${baseUrl}/resources/js/focus.assist.js"></script>
<script type="text/javascript" src="${baseUrl}/resources/js/jquery.focus.js"></script>
<script type="text/javascript" src="${baseUrl}/resources/js/ichart.1.2.min.js"></script>

<script type="text/javascript">

    function readDashboard() {
        var stageWidth = screen.width * 25 / 28;
        var stageHeight = screen.height * 17 / 21;
        $(".b").width(screen.width * 25 / 84);
        $(".focusWrap").css({"width": stageWidth, "height": stageHeight});
        $(".focusCon").width(stageWidth);
        //vertical center
        $("#page").css({"width": stageWidth, "margin-top": -(stageHeight) / 2, "margin-left": -(stageWidth) / 2});
        $(".focusL").height(screen.height - 250);
        $(".focusM").css({"width": stageWidth, "height": stageHeight});
        $(".ulFCon li img").css({"width": stageWidth, "height": stageHeight});
        $(".ulFCon li").height(stageHeight);
        $("#j_Focus").Focus();
        $(".projectName").css({"height": screen.height * 17 / 126, "color": "#3e576f", "margin-top": screen.height * 17 / 252 - 5});
    }
    $(document).ready(function(){
        readDashboard();
        // Set the refresh time
        var interval = setInterval("getNewDashboardData()", 60000);
        initDashboard();
    });

function initDashboard() {
    var allReportData = ${allData};
    for(var proName in allReportData) {
        var testData;
        var testLabels;
        var analysisData;
        var deployData;
        var deployLabels;
        for(var paramData in allReportData[proName]) {
            if(paramData == "testReport") {
                testData = allReportData[proName][paramData];
            } else if (paramData == "testLabels") {
                testLabels = allReportData[proName][paramData];
            } else if (paramData == "analysisReport") {
                analysisData = allReportData[proName][paramData];
            } else if (paramData == "deployReport") {
                deployData = allReportData[proName][paramData];
            } else if (paramData == "deployLabels") {
                deployLabels = allReportData[proName][paramData];
            }
            //alert(allReportData[proName][paramData]);
        }

        showiChart2D(proName+"c1","Code Analysis","Ok",analysisData);
        showColumnStacked2D(proName+"c2","Test Result","Ok",testLabels,testData);
        showArea2D(proName+"c3","Job Status","subtitle","footText",deployLabels,deployData);
    }
}

function getNewDashboardData() {
    alert("start post");
    j.post("refreshTheDashboard.shtml",function(result) {
        if(result.code==1000){
            var proIdArray = new Array();
            var proNameArray = new Array();
            // Deal with the project names.
            var theProjectsObj = JSON.parse(result.data["projectNames"]);
            for (var proName in theProjectsObj) {
                proNameArray.push(theProjectsObj[proName]);
                proIdArray.push(theProjectsObj[proName].replace(/\s/g, "").replace(/-/g,""));
            }

            var projectHtml = "";
            projectHtml += "<ul class=\"ulFCon\" id=\"j_FocusCon\">";
            var proNameLength = proNameArray.length;
            for(var i = 0; i < proNameLength; i++){
                var tempItem = proIdArray[i];
                var tempItem1 = tempItem + "c1";
                var tempItem2 = tempItem + "c2";
                var tempItem3 = tempItem + "c3";
                projectHtml = projectHtml + "<li>" +
                        "<div class=\"projectName\">" + proNameArray[i] + "</div>" +
                        "<div class=\"b\">" + "<div id=\""+tempItem1+"\">" + "</div></div>" +
                        "<div class=\"b\">" + "<div id=\""+tempItem2+"\">" + "</div></div>" +
                        "<div class=\"b\">" + "<div id=\""+tempItem3+"\">" + "</div></div>" +
                        "</li>";
            }
            projectHtml = projectHtml + "</ul>";
            console.log("projectHtml:" + projectHtml);
            $(".focusM").html(projectHtml);
            readDashboard();
            // ==============================I am separator===============================
            /*var array = new Array();
            $(".ulFCon").find(".b").each(function(){
                array.push($(this).attr("id"));
            });
            var length = array.length;
            for(var i = 0; i < length; i++) {
                array[i] = array[i].replace(/\s/g, "").replace(/-/g,"");
            }*/
            // ===============================I am separator===============================

            // Deal with the report.
            var allReportDataObj = JSON.parse(result.data["allData"]);
            for(var proName in allReportDataObj) {
                var testData;
                var testLabels;
                var analysisData;
                var deployData;
                var deployLabels;
                for(var paramData in allReportDataObj[proName]) {
                    if(paramData == "testReport") {
                        testData = allReportDataObj[proName][paramData];
                    } else if (paramData == "testLabels") {
                        testLabels = allReportDataObj[proName][paramData];
                    } else if (paramData == "analysisReport") {
                        analysisData = allReportDataObj[proName][paramData];
                    } else if (paramData == "deployReport") {
                        deployData = allReportDataObj[proName][paramData];
                    } else if (paramData == "deployLabels") {
                        deployLabels = allReportDataObj[proName][paramData];
                    }
                    //alert(allReportData[proName][paramData]);
                }

                showiChart2D(proName+"c1","Code Analysis","Ok",analysisData);
                showColumnStacked2D(proName+"c2","Test Result","Ok",testLabels,testData);
                showArea2D(proName+"c3","Job Status","subtitle","footText",deployLabels,deployData);
            }
        }
    },"json");


}

</script>

<style type="text/css">
    .b{ margin:0; padding:0; height:500px; float:left;}
    .b div{ margin:0 2px; padding:0; height:500px;}
    .projectName {
        text-align: center;
        background-color: #FFFFFF;
        font-size: 28px;
        font-weight: 500;

        margin-bottom: 10px;
        /*border-bottom: 1px solid #e1e1eb; margin-top: 30px; margin-bottom: 15px;*/
    }
    /*.projectName h2 {font-size: 28px; font-weight: 500; height: 50px; line-height: 50px; margin-bottom: 10px;}*/
</style>
</head>
<body id="introduction">
<div id="page">
    <div id="container" class="content clearfix">
        <div class="focusCon" id="j_Focus">
            <!-- --------------middle begin------------ -->
            <div class="focusM">
                <ul class="ulFCon" id="j_FocusCon">
                    <c:forEach items="${projectNames}" var="projectName">
                        <li>
                            <div class="projectName">${projectName}</div>
                            <div class="b" id="${projectName.replaceAll(" ","").replaceAll("-", "")}c1"></div>
                            <div class="b" id="${projectName.replaceAll(" ","").replaceAll("-", "")}c2"></div>
                            <div class="b" id="${projectName.replaceAll(" ","").replaceAll("-", "")}c3"></div>
                        </li>
                    </c:forEach>
                </ul>
            </div>
            <!-- ---------------middle end-------------- -->
        </div>
    </div>
</div>
</body>
</html>

基于Java+MySQL实现的(Web)花卉后台管理系统 1.1 使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本素质和技术能力要求。1.2 学习掌握 html+css+js 前端开发的设计和编码。1.3 使学生掌握 JSP 及 Servlet 基本的 JavaEE 编程技术,能够综合运用 MySQL 数据库及 MyEclipse 开发环境进行小型项目的开发。1.4 重点培养学生的团队精神和协作意识,提高其口头和书面的沟通能力。1.5 使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力1.6 重点提高学生的编程能力,使学生建立正 阅读详情

相关推荐

页面定时自动刷新代码实现

页面定时自动刷新代码实现,就是一些简单的页面刷新的例子,希望对大家有帮助。

Spring3.1 MVC和jQuery ajax的集成

关于spring和ajax的集成网上有很多文章,但有些文章写的有些复杂,贴了好多代码,有用的、没用的、不疼不痒的贴了一堆,看着不够清爽,又容易把人吓到。在翻了好多资料后,看到这篇文章《Spring3MVC和jQuery的集成》,博主写的很详细,还做了对比分析,让人佩服。在参考这篇文章后,我终于搞明白了、搞定了spring集成ajax,可以实现异步刷新了。上文博主讲的很详细,我结合自己的小程序再随便

grafx的专栏 1447

jsp+jquery页面无刷新异步登录的一个小例子

jsp+jquery 页面无刷新异步登录~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Spring Boot集成thymeleaf异步刷新页面

现在比较流行前后端分离开发,但在有些业务场景下模板引擎也用的不少。本文介绍thymeleaf页面的局部更新,Spring Boot采用的是2.0.4,先来看代码。 IndexController.java: package com.example.demo.thymeleaf; import org.springframework.stereotype.Controller; ...

weixin_30485291的博客 659

MST-GAT: Enhancing Anomaly Detection in Multimodal Time Series with Intra- and Inter-Modal Attention

本文深入解析了MST-GAT模型,这是一种通过模态内与模态间注意力机制增强多模态时间序列异常检测的新方法。它通过构建图结构显式建模传感器间的复杂时空依赖,并结合时间卷积网络与联合优化策略,有效降低了传统方法中常见的误报与漏报问题,在工业监控等场景中展现出卓越性能。

weixin_29079671的博客 150

PSINS工具箱15状态组合导航仿真程序(test_SINS_GPS_153)浅析-卡尔曼滤波设置+导航解算

文章目录test_SINS_GPS_153源码poserrsetkfinitgabiaskfupdate流程 test_SINS_GPS_153源码 poserrset function poserr = poserrset(dpos0, dlon, dhgt) % position errors dpos=[dlat;dlon;dhgt] setting. % % Prototype: poserr = poserrset(dpos0) % Input: dpos0=[dlat; dlon; dhgt],

十八与她的博客 2161

Idea中SpringMVC使用Ajax+JdbcTemplate类实现动态检测用户名是否可用

Idea中SpringMVC使用Ajax+JdbcTemplate类实现动态检测用户名是否可用 这个应该是Ajax异步刷新很经典的例子了 1.目录结构 2.配置Web.xml文件 <!--配置前端控制器--> <servlet> <servlet-name>dispatcherServlet</servlet-name> ...

programmer-dll 325

YOLO与3D点云融合:从原理到实践的多模态3D目标检测指南

最近在实验室和几个研究生聊天,发现一个挺有意思的现象:大家一提到“YOLO+3D点云”这个组合,第一反应往往是“顶会热门”、“发论文利器”,但真上手去复现或者想基于这个方向做点创新时,又常常卡在第一步——感觉每个部分都懂一点,但就是串不起来,不知道从哪开始,也不知道核心的“价值点”到底在哪。 这让我想起几年前刚开始接触这个领域时的自己,也经历过同样的困惑。当时看了很多论文,感觉“3D目标检测”这个方向既酷又难,YOLO负责2D图像里的快速定位,点云提供精确的三维空间信息,听起来是天作之合。但真正把代码跑起来

weixin_34267123的博客 415

验证码生成与异步刷新

Spring mvc 部分代码 @RequestMapping(value = "/getAuthImg", method = RequestMethod.GET) @ResponseBody public void getAuthImg(HttpServletResponse response) throws IOException { new AuthImg().service(re

zzhao114的博客 1468

DeepSeek与豆包无缝对接:5分钟搞定智能周报自动化(附完整代码)

本文详细介绍了如何利用DeepSeek与豆包API,快速搭建一个智能周报自动化系统。通过整合豆包平台的工作流数据,并调用DeepSeek大模型进行深度分析与内容生成,该系统能在5分钟内自动抓取、分析多源信息,并生成结构清晰、富有洞察力的团队周报,显著提升工作效率。

weixin_29029995的博客 493

Chipyard------介绍与环境搭建

Chipyard是一个开源的、可扩展的、集成化的芯片设计平台,旨在帮助芯片设计人员快速、高效地开发自己的定制芯片。由伯克利大学架构研究小组开发,它基于Chisel语言和Scala编程语言,提供了一整套硬件设计工具和流程,包括RTL设计、验证、物理布局、仿真等,以及支持多种芯片体系结构的库和模块。

qq_38798111的博客 9479

thymeleaf 异步刷新局部块_SpringBoot | Thymeleaf | 局部更新(示例代码)

建立一个实体类:public class Fruit {int id;String name;public Fruit() {}public Fruit(int id, String name) {this.id = id;this.name = name;}//省略get和set方法}建立一个控制类:package org.project.controller;import org.spring...

weixin_35644506的博客 259

KEPServerEX与三菱iQ-R系列PLC通讯

KEPServerEX与三菱iQ-R系列PLC通讯Mitsubishi Ethernet北京东方鼎晨科技有限公司目 录1. 前言2. 三菱PLC端相关设置3. Kepware端相关设置KEPServerEX是美国PTC Kepware公司生产的具有行业性的连接平台,KEPServerEX支持150多种通讯协议,用于向您的所有应用程序提供单一来源的工业自动化数据。该平台的设计使用户能够通过一个直观的用户界面来连接、管理、监视和控制不同的自动化设备和软件应用程序。KEPServerEX利用OPC(自动化产业的互

qq_28768521的博客 8097

thymeleaf 异步刷新局部块_SpringBoot | Thymeleaf | 局部更新

建立一个实体类:public class Fruit {int id;String name;public Fruit() {}public Fruit(int id, String name) {this.id = id;this.name = name;}//省略get和set方法}建立一个控制类:package org.project.controller;import org.spring...

weixin_39683241的博客 110

【数据集处理】基于ERA5 气温/湿度数据计算湿球温度并判别湿热浪

【数据集处理】基于ERA5 气温/湿度数据计算湿球温度并判别湿热浪

WW、forever的博客 488

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

基于spring的大学生兼职网[spring]-计算机毕业设计源码+LW文档

摘要:本文基于Spring框架设计开发了大学生兼职网系统,旨在解决当前大学生兼职市场存在的信息不对称、管理不规范等问题。系统采用Spring MVC三层架构,整合了MySQL数据库和MyBatis等技术,实现了用户管理、新闻发布、论坛交流、岗位发布、应聘管理、薪资发放等核心功能模块。通过严格的测试验证,系统运行稳定可靠,能够为学生提供便捷的兼职信息查询服务,为企业搭建高效的人才招聘平台,同时通过规范化的管理流程保障双方权益。研究表明,该平台对促进大学生兼职市场的健康发展具有积极意义,未来将在功能扩展和性能优

QQ375279829的博客 385

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

spring boot控制层controller详解

Controller的使用@Controller处理http请求@RestControllerSpring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller@RequestMapping配置url映射项目前后台交互的话 无非两种方式一种普通整体页面提交,比如form提交;还有一种局部刷新,或者叫做异步刷新,ajax提交;@Controller就是整体页面刷新...

gao__xue的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

基于spring的创新团队管理平台[spring]-计算机毕业设计源码+LW文档

本文基于Spring框架设计并实现了一个创新团队管理平台,旨在解决传统团队管理方式存在的效率低下问题。平台采用三层架构设计,包含用户管理、导师管理、任务管理和公告管理等核心功能模块。通过Spring MVC、MySQL等技术实现,平台具备良好的扩展性和稳定性。实际应用表明,该平台能有效提升团队协作效率和管理水平,但仍存在功能扩展和性能优化空间。未来将持续完善平台功能,为创新团队提供更优质的信息化管理解决方案。

QQ375279829的博客 389

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

基于ssm的高校学生综合测评系统[Spring]-计算机毕业设计源码+LW文档

本文基于SSM(Spring、SpringMVC、MyBatis)框架设计实现了一套高校学生综合测评系统。该系统整合了用户管理、通知公告、班级管理、测评标准、成绩管理、加分申请等核心功能模块,实现了学生综合测评的信息化、自动化管理。系统采用B/S架构,通过分层设计优化了性能与安全性。研究表明,该系统能有效提升测评效率与准确性,为高校管理工作提供有力支持。未来可进一步扩展数据分析功能,完善系统安全性,并与其他管理系统集成,促进高校教育信息化发展。

QQ375279829的博客 660

基于SSM的智能校内点餐系统设计与实现

本系统基于SSM框架实现了校内点餐的核心需求,解决了校外外卖安全隐患与食堂排队问题,同时通过个性化推荐提升用户体验。系统测试结果表明,各项功能运行稳定,界面操作便捷,能够满足学生与食堂的双重需求。

有问题联系我qq:270490096 875

spring面试

一、Struts2面试题 1.描述Struts2的工作原理 客户端发送请求--》请求经过一系列过滤器--》FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action --》FilterDispatcher把请求的处理交给ActionProxy--》通过ConfigurationManager询问Struts配置文件(Struts.xml),找到需要...

w1374401940的博客 1678
上一篇: Spring MVC中设置过滤器不拦截某些地址
下一篇: CSS和JS代码加注释符号的原因
ithouse
博客等级 码龄12年 200粉丝 212原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ithouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值