访问JSTL变量在AJAX调用中的jsp中定义

时间:2014-06-18 12:38:16

标签: javascript jquery jsp

我有一个JSP文件,我在这里定义了JSTL变量(表单值):

<c:set var="idEtape" value="${etapeForm.etape.idEtape}" scope="page"/>
<c:set var="idContact" value="${etapeForm.etape.idContact}" scope="page"/>
<c:set var="numeroDossierFoa" value="${etapeForm.dossier.numeroDossier}" scope="page"/>
<script type="text/javascript" src=myfile.js"/>"></script>

在我的myfile.js文件中,我需要使用这些变量,但是我收到一个错误,告诉我它们是未定义的。

我在这样的ajax调用中使用这些变量:

var request = $.ajax({
            type: "POST",
            url: "/myUrl/" + numeroDossier + "/" + idContact + "/" + idEtape,
            cache: false
});

我哪里错了?

3 个答案:

答案 0 :(得分:5)

JSP变量不能在javascript文件中使用,因为JSP是服务器端而JS是客户端

试试这个:

<input id="idEtape" value="${etapeForm.etape.idEtape}" type="hidden"/>

在JS中:

$("#idEtape").val();

答案 1 :(得分:1)

您可以尝试使用${}来访问jstl变量。在你的jsp中,在文件导入之前创建js变量:

<强> JSP

<script type="text/javascript">
    var numeroDossier = '${etapeForm.dossier.numeroDossier}';
    var idEtape = '${etapeForm.etape.idEtape}';
    var idContact = '${etapeForm.etape.idContact}';
</script>
<script type="text/javascript" src=myfile.js"/>"></script>

<强> JS

var request = $.ajax(
{
    type: "POST",
    url: "/myUrl/" + numeroDossier + "/" + idContact + "/" +idEtape,
    cache: false
});

答案 2 :(得分:0)

如果变量范围应为session:

,则必须使用EL表达式访问此变量,如下所示
<c:set var="idEtape" value="${etapeForm.etape.idEtape}" scope="session"/>
<c:set var="idContact" value="${etapeForm.etape.idContact}" scope="session"/>
<c:set var="numeroDossierFoa" value="${etapeForm.dossier.numeroDossier}" scope="session"/>

var request = $.ajax({type: "POST",
    url: "/myUrl/" + '${numeroDossier}' + "/" + '${idContact}' + "/" + '${idEtape}',
    cache: false
    });