微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在XPages中使用jsSha

如何解决在XPages中使用jsSha

我正在尝试在XPage中使用jsSHA JavaScript库。

var shaObj =新的jsSHA('SHA-1','HEX');给出运行时错误:[ReferenceError]'jsSHA'未找到

<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已加载

我从https://caligatio.github.io/jsSHA/sha.js那里得到了sha文件

解决方法

您正在xp:text控件中使用服务器端JS。 jsSHA是客户端JS库。

我建议您使用Apache Commons Codec Java库将您的SHA1摘要生成为十六进制字符串值:

DigestUtils.sha1Hex(string);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。