通过Kettle自定义jar包供javascript使用


Posted in Javascript onJanuary 29, 2020

这篇文章主要介绍了通过Kettle自定义jar包供javascript使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。

一、在 java 项目中创建工具类

在项目中,创建 utils 工具类,比如 计算总页码 的一个方法。代码如下:

public class PaginationUtils {

 /**
  * 计算得到总页码
  * @param totalRecords 总记录数
  * @param pageSize 分页大小
  * @return 总页码
  */
 public static int totalPage(String totalRecords,String pageSize){
  int totalPage=0;
  try{
   BigDecimal records=new BigDecimal(totalRecords);
   BigDecimal size=new BigDecimal(pageSize);
   BigDecimal _tmp=records.add(size).subtract(new BigDecimal(1));
   BigDecimal _tp=_tmp.divide(size).setScale(0,BigDecimal.ROUND_HALF_UP);
   totalPage=_tp.intValue();
  }catch (Exception e){
   //error
  }
  return totalPage;
 }
}

二、部署打包

工具类方法开发完毕后,可通过 mvn clean package -DskipTests 命令进行打包,在 target 目录下,会生成一个 jar 文件。需要将这个 jar 包放到 kettle 的 lib 目录下。如下图所示:

通过Kettle自定义jar包供javascript使用

三、编写 JavaScript 脚本

重启 Kettle ,新建 JavaScript 脚本,计算总页码的 js 代码如下所示:

//计算总页码
var totalPage=com.study.spring.Utils.PaginationUtils.totalPage(countBySql,pageSize);

其实就是在 js 代码中声明 java 类+方法。

但是问题来了,kettle 在运行这段 JavaScript 脚本的时候,提示下面这样的错误:

不能编译 javascript: org.mozilla.javascript.EcmaError: TypeError: Cannot call property totalPage in object [JavaPackage com.study.spring.Utils.PaginationUtils]. It is not a function, it is "object". (<cmd>#22)

根据错误信息来看,其实还是没有找到相关类方法,和没放这个 jar 包一样...

四、FAQ

上面这个错误究竟是怎么回事呢?我也很奇怪。于是我就用压缩工具也看了看 lib 目录下的其它 jar 包结构,发现人家都是这样式的:

通过Kettle自定义jar包供javascript使用

而我刚才打的 jar 包目录是这样子的:

通过Kettle自定义jar包供javascript使用

com 目录并没有在 jar 包的根路径下,自然是访问不到那个方法。

好,问题产生的原因找到了,然后再说一下解决办法:

在 pom.xml 文件中添加:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <skip>true</skip>
      </configuration>
    </plugin>
  </plugins>
</build>

pom 文件添加后的效果图如下所示:

通过Kettle自定义jar包供javascript使用

再次打成的 jar 包内部结构为:

通过Kettle自定义jar包供javascript使用

成功!com 目录已经在 jar 包的根路径下了。

将 jar 包替换到 kettle 的 lib 目录下,重启 Kettle ,再次通过 javascripts 调用自定义 jar 包成功!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于捕获用户何时点击window.onbeforeunload的取消事件
Mar 06 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
js取值中form.all和不加all的区别介绍
Jan 20 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
JS数组返回去重后数据的方法解析
Jan 03 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
JS前端轻量fabric.js系列物体基类
Aug 05 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 #Javascript
vue引用外部JS的两种种方法
Jan 28 #Javascript
Java Varargs 可变参数用法详解
Jan 28 #Javascript
关于引入vue.js 文件的知识点总结
Jan 28 #Javascript
JS简单表单验证功能完整示例
Jan 26 #Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 #Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 #Javascript
You might like
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python深入学习之对象的属性
2014/08/31 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
python七夕浪漫表白源码
2019/04/05 Python
python适合人工智能的理由和优势
2019/06/28 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
一组SQL面试题
2016/02/15 面试题
大学生求职自荐信
2013/12/12 职场文书
给水工程专业毕业生自荐信
2014/01/28 职场文书
公司建议书怎么写
2014/05/15 职场文书
生产助理岗位职责
2014/06/18 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
学校国庆节活动总结
2015/03/23 职场文书
2016新年慰问信范文
2015/03/25 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
教师工作证明范本
2015/06/12 职场文书
三八妇女节主持词
2015/07/04 职场文书
暑假打工感想
2015/08/07 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL