簡體   English   中英

在AJAX調用中的jsp中訪問JSTL變量定義

[英]Access JSTL variable define in a jsp inside AJAX call

我得到了一個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
});

我哪里錯了?

由於JSP是服務器端而JS是客戶端,因此無法在JavaScript文件內使用JSP變量

嘗試這個:

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

在JS中:

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

您可以嘗試使用${}訪問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
});

您必須使用EL表達式訪問此變量,如下所示,只要變量作用域應為session:

<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
    });

JSP JSTL

[英]JSP JSTL <a href call Onclick Javascript function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM