当前项目需要让客户自己输入cron表达式,所以提供个页面生成cron表达式
网上看了下,找到了 https://www.cnblogs.com/yanweidie/p/3537144.html,非常感谢作者
大致就是按照以下的顺序进行整合
1.img // 这个不用讲
2.html // 更改下css、js的引入路径
3.css // easyui.min.css需要替换图片路径,就是你上面img放入的路径
background: ${ctxPath}/static/img/cron/panel_tools.png no-repeat -16px 0px;
4.js //修改一些东西
cron.change(function () { btnFan(); //设置最近五次运行时间 $.ajax({ type: 'get', url: "/cron/expression",//这里需要替换成后台url dataType: "json", data: { "CronExpression": $("#cron").val() }, success: function (val) { if(val.code === 0){ var data = JSON.parse(val.data); if (data && data.length == 5) { var strHTML = "<ul>"; for (var i = 0; i < data.length; i++) { strHTML += "<li>" + data[i] + "</li>"; } strHTML +="</ul>" $("#runTime").html(strHTML); } else { $("#runTime").html(""); } } } }); });
5.Controller // 作者是使用jsp来处理,所以这里将它修改成Controller
a.提供一个路径跳转
b.提供一个计算最近5次计算时间
import com.stylefeng.guns.core.base.tips.SuccessTip; import com.stylefeng.guns.core.util.DateUtil; import org.quartz.impl.triggers.CronTriggerImpl; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.text.ParseException; import java.util.Date; /** * @Auther: eros * @Date: 2019/2/21 18:33 * @Description: */ @Controller @RequestMapping("/cron") public class CronController { private static final String PREFIX = "/cron/"; @RequestMapping public String cron(){ return PREFIX + "cron.html"; } /** * @auther: eros * @param CronExpression cron表达式 * @date: 2019/2/22 10:55 * @description 返回最近5次的结果时间 * @return: java.lang.Object */ @RequestMapping("/expression") @ResponseBody public Object expression(String CronExpression){ StringBuffer sbResult = new StringBuffer(); sbResult.append("["); try { CronTriggerImpl trigger = new CronTriggerImpl(); trigger.setCronExpression(CronExpression); Date start = trigger.getStartTime(); for(int i=0;i<5;i++){ Date next = trigger.getFireTimeAfter(start); sbResult.append(", "").append(DateUtil.formatDate(next,"yyyy-MM-dd HH:mm:ss")).append("""); start = next; } sbResult.append("]"); } catch (ParseException e) { e.printStackTrace(); } return new SuccessTip(sbResult.replace(sbResult.indexOf(","),sbResult.indexOf(",")+1,"")); } }