2014-06-18 46 views
1

我,我這樣定義(表格值)JSTL變量JSP文件:訪問JSTL變量裏面AJAX一個jsp定義調用

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

我在哪裏錯了?

回答

5

JSP變量不能JavaScript文件中使用,因爲JSP是服務器端和JS是客戶端

試試這個:

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

在JS:

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

是的,當然JSP是服務器端...謝謝,這個工程! – user3469203

+0

如果它適合您,請將其標記爲正確的答案。謝謝 ! –

0

你必須使用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 
    }); 
+0

這將工作,如果其在JSP本身,而不是在外部JS文件。 –

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

這將工作,如果它在JSP本身,而不是在外部js文件 –

+0

@NikhilTalreja,謝謝你解決這一點。 – Arvind

+0

我的js文件是外部的,所以它不起作用,但nikhil答案正在工作 – user3469203