我为JSP页面开发了一个数字格式转换器。 我有一些由脚本操纵的数量。我有2个会话变量," 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>
n umberFormatting.js 包含以下代码,用于通过会话变量交换千位和小数分隔符:
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();
});
现在的问题是,当我在<script>
标签之间的jsp中添加它时,这非常有效。但是现在我想将这个脚本添加到一个单独的文件中,所以我可以将它用于多个jsp&#39; s,
但现在我遇到了问题。
例如, 500,005.00 的数字格式为 500 $ {sessionScope.userThousandSeparator} 005 $ {sessionScope.userDecimalSeparator} 00
为什么我的脚本不再知道会话变量以及如何解决这个问题?
答案 0 :(得分:1)
您的JS脚本将按原样传输到浏览器。因为它不是JSP,所以你不能在那里使用EL。显然它没有被处理,也只是在脚本中添加了 。
你可以
handleNumericFields
功能以接受参数 - 例如thousandsSeparator
和decimalSeparator
。甚至只是locale
如果可能,我建议将参数引入该功能。或者,如果它们只是像“分隔符”那样的类似配置的值,那么您可能会得到全局变量。不漂亮,但做的工作。