javascript - 在 XPage 中使用 jsSha
问题描述
我正在尝试在 XPage 中使用 jsSHA JavaScript 库。
var shaObj = new jsSHA('SHA-1','HEX'); 给出运行时错误:[ReferenceError] 'jsSHA' not found
<xp:this.resources>
<!-- temporary redefine define.amd object (Dojo AMD loader) -->
<xp:script clientSide="true" type="text/javascript">
<xp:this.contents><![CDATA[${javascript:"if (typeof define === 'function' && define.amd) {if(define.amd.vendor =='dojotoolkit.org'){define._amd = define.amd;delete define.amd;}}";}]]></xp:this.contents>
</xp:script>
<xp:script src="sha.js" clientSide="true"></xp:script>
<xp:script src="https://code.jquery.com/jquery-3.5.1.min.js" clientSide="true"></xp:script>
<!-- restore define.amd object (Dojo AMD loader) -->
<xp:script clientSide="true">
<xp:this.contents><![CDATA[${javascript:"if (typeof define === 'function' && define._amd) {define.amd = define._amd; delete define._amd;}"}]]></xp:this.contents>
</xp:script>
</xp:this.resources>
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:var shaObj = new jsSHA('SHA-1','HEX');
return shaObj ;
}]]></xp:this.value></xp:text>
当我删除我的计算字段时,我可以看到 sha.js 和 jquery 已加载
解决方案
您在 xp:text 控件中使用服务器端 JS。jsSHA 是一个客户端 JS 库。
我建议您使用 Apache Commons Codec Java 库将您的 SHA1 摘要生成为十六进制字符串值:
DigestUtils.sha1Hex(string);
推荐阅读
- awk - 如何仅输出正在运行的进程的用户
- php - cpanel上的laravel显示错误500
- django - 对于 django-storages 和 GCE,如何设置 GS_CREDENTIALS?
- python - Docker SDK for Python-如何保持容器不处于交互模式
- python - 无法正确导入聊天机器人及其语料库
- python - 通过 Django 表单传递数据
- javascript - d3 分组和总结
- c++ - 模板模拟上的 EXPECT_CALL
- r - 将地理添加到 tmap World 数据框
- node.js - NodeJS Streams 等待所有数据流式传输