0

我想在我的 JQuery 中使用 JSP 变量。请指导我如何弄清楚..

这是我在 JSP 中的代码..

<c:set var="fontClass" value="unicode ieUnicode" />

在我的 JS 文件中,我只是通过 JQuery 检索和输出。就像..

     (1). var fontClass = '${fontClass}';
          console.log("Result values are--- "+fontClass);
     (2). console.log("Result values are--- "+$('fontClass');

但是,这两件事不能满足我的问题。我喜欢How to use JSTL var in Jquery 中的一篇文章。所以,我试过这样......

JSP ::

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
  var fontClass = "${fontClass}";
</script>

JS 文件::

var fontClass = '${fontClass}';
alert($("#${fontClass}"));

但我得到了错误:语法错误,无法识别的表达式:#${fontClass}

我的代码或任何建议有什么问题?提前致谢..

4

1 回答 1

2

您无法<c:set/>像这样在 JS 文件中获取 JSTL 值。您的 JSP 在服务器端处理,而您的 JS 在客户端处理。

要在 JS 文件中使用该值:

JSP 文件

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
    yourJsFunction("${fontClass}");
</script>

JS文件

function yourJsFunction(fontClass) {
    // finalResult is a local variable
    var finalResult = fontClass;

}

要使用内联 javascipt 代码中的值(不太好):

JSP 文件

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
    // finalResult is a global variable
    var finalResult = "${fontClass}";
</script>

/!\这不是一个很好的做法,因为这个全局变量有一个通用名称,并且几乎可以从任何地方访问。看看下一个解决方案:

要使用内联 javascipt 代码中的值(使用命名空间的更好方法):

JSP 文件

<!-- Define your namespace, which is a global object -->
<script>
    var yourCompany = yourCompany || {};
</script>

<c:set var="fontClass" value="unicode ieUnicode" />
<script type="text/javascript">
    // Set all values you want to your namespace
    yourCompany.fontClass = "${fontClass}";
    yourJsFunction();
</script>

JS文件

function yourJsFunction() {
    // The font class value set in your namespace is accessible like that :
    yourCompany.fontClass;
}
于 2013-08-10T13:51:48.243 回答