gpt4 book ai didi

javascript - 在外部 JavaScript 文件中调用 session 变量

转载 作者:行者123 更新时间:2023-12-03 07:12:32 27 4
gpt4 key购买 nike

我正在为我的 JSP 页面开发一个数字格式转换器。我有一些由脚本操纵的金额。我有 2 个 session 变量,“userThousandSeparator”和“userDecimalSeparator”,其中包含 2 个符号,主要是 .,.

JSP文件具有以下结构

    <html>
<body>
...
<span class="list-group-item list-group-item-sm">Instructed amount<span class="pull-right"><em id="instructedAmount"class="numberField">${instructedAmount}</em> <em id="instructedAmountCurrency">${instructedAmountCurrency}</em></span></span>

<span class="list-group-item list-group-item-sm">Counter value amount<span class="pull-right"><em id="counterValueAmount class="numberField">${counterValueAmount}</em> <em id="counterValueAmountCurrency">${counterValueAmountCurrency}</em></span></span>
...
<script src="js/numberFormatting.js"></script>
</body>
</html>

numberFormatting.js 包含以下代码,用于通过 session 变量交换千位和小数分隔符:

function handleNumericFields(){
$('.numberField').each(function(){
var amount = $(this).text();
var splittedValues = amount.split(/[,.]/);
amount = "";

for(var i=0 ; i < (splittedValues.length - 1) ; i++){
amount += splittedValues[i];

if(i < (splittedValues.length - 2)) {
amount += "${sessionScope.userThousandSeparator}";
}
}
amount += "${sessionScope.userDecimalSeparator}";
amount += splittedValues[splittedValues.length - 1]
$(this).text(amount);
});
}

$( document ).ready(function() {
handleNumericFields();
});

现在的问题是,当我在 jsp 中将其添加到 <script> 之间时标签,这非常有效。但现在我想将此脚本添加到一个单独的文件中,这样我就可以将其用于多个 jsp,但现在我遇到了问题。

例如,数字 500,005.00 的格式为 500${sessionScope.userThousandSeparator}005${sessionScope.userDecimalSeparator}00

为什么我的脚本不再知道 session 变量以及如何解决这个问题?

最佳答案

您的 JS 脚本将按原样传输到浏览器。。因为它不是 JSP,所以不能在其中使用 EL。显然它没有被处理,只是按原样添加到脚本中。

您可以

  • 定义或多或少的全局变量并在 JS 代码中选取它们
  • 将 JS 代码嵌入 HTML 页面 - 或者至少是可配置部分,例如调用您需要的函数
  • 更改您的 handleNumericFields 函数以接受参数 - 例如thousandsSeparatordecimalSeparator。或者甚至只是区域设置
  • 将 JS 文件实现为 JSP - 但随后您必须小心缓存代理(例如不推荐)

如果可能的话,我建议将参数引入到函数中。或者,如果它们只是像“分隔符”这样的类似配置的值,您可能会使用全局变量。不漂亮,但能完成任务。

关于javascript - 在外部 JavaScript 文件中调用 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36569908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com