我有一个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
});
我哪里错了?
答案 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
});