zoukankan      html  css  js  c++  java
  • quartz定时任务cron表达式讲解及翻译成现实语言的插件的使用详解

    cron表达式讲解

    参见该网址:

    https://www.cnblogs.com/GarfieldTom/p/3746290.html

    cron表达式只有专业技术人员才看得懂,普通人不知道表达式是什么意思,

    有需求让我们将cron表达式翻译成普通人可以看懂的文字,刚开始觉得这个

    需求有点强人所难,不过后来在网上竟然找到了解决方案。

    在GitHub上有开源的项目,链接如下:

    https://github.com/bradymholt/cRonstrue

    将项目下载到本地,解压压缩包,点开文件夹,copy里面的dist文件夹到自己

    需要的项目里,dist里面有cron表达式翻译的核心js包和locales国际化的相关语言包。

    在要翻译cron表达式的页面引入核心js包:

    <script src="<%=basePath%>/js/dist/cronstrue-i18n.min.js" type="text/javascript"></script>

    在需要翻译的地方调用js包里提供的API,很简单只有一句代码:

    cronstrue.toString(cronString, { locale: "zh_CN" })

    第一个参数是cron表达式,

    第二个参数是一个JSON对象,locale的值为相应的语言标识,这里翻译成中文。

    如果要将列表里含有cron表达式的一列的值翻译成中文,就必须在页面加载完毕后来做特殊处理,

    下面给一个例子:

    js代码:

    //同步表格定时规则翻译
    $("[name='cronString']").each(function(){
    	var cronString = $(this).text();
    	if(cronString){
    		$(this).prop("innerHTML",cronstrue.toString(cronString, { locale: "zh_CN" }));
    	}
    });
    //异步表格定时规则翻译
    var checksObj = $('td[data-index="10"]').find(".datatable-cell .text-center").prevObject;
    if (null != checksObj && checksObj.length >= 1) {
    	for (var i = 0; i < checksObj.length; i++) {
    		var cronString = $(checksObj[i]).text();
    		if(cronString){
    			$(checksObj[i]).prop("innerHTML",cronstrue.toString(cronString, { locale: "zh_CN" }));
    		}
        }
    }

    html代码如下:

    <td name="cronString">${modelNameToCronExpress[tmodelMaintainConfig.modelName] }</td>

    因为前端用的由bootstrap改写的zui框架所以表格实际上有两份,一份是同步表格即html里编写的表格,另一份是

    框架自动渲染的表格,所以js代码要写两份。之所以要在td上加一个name属性是为了方便获取cron表达式这一列的

    所有td对象。

    总体思想是获取所有待替换对象,遍历获取每个对象的值调用翻译API后将值赋值给原对象。

  • 相关阅读:
    管理中的“变”与“不变”
    软件项目需求分析与管理的十大疑问
    小商家也要有O2O思维
    互联网时代CIO生存法则
    浅谈项目经理与部门经理之间的关系
    沃尔玛:“最后一公里”的致命伤
    大数据分析案例:永远别忘记天气这个变量
    IT项目中的6类知识转移
    C
    linu入门
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/10907710.html
Copyright © 2011-2022 走看看