EL表达式利用的是服务器上的数据
显然,EL表达式是不可能获取ajax请求得到的数据的
千万要谨记:JSP也是servlet,它是不可能直接跟JS产生交互的,自然也无法利用JS取到的数据js是客户端执行,el是在服务端执行,而服务端比客户端先执行,所以你不能用js来改变已经执行的el表达式的值,但是却可以用el来给js初始化传值,这和jsp脚本是一样的效果,但是如果js脚本不是在jsp页面里而是在单独的js文件里,这时用el初始传值是不起作用的,但你可以通过windowonload()来得到el的值再传送给js文件里的方法进行变量初始化通过request的getParameter的方法获取
1、通过requestgetParameter("参数名")获取后台的值
2、通过<%=变量%>的方式赋给js变量
示例:
<script>
<%
String s2 = (String)requestgetParameter("参数名");//获取后台参数给s2变量,<%%>表示这范围内是服务器解析的语言
%>
var s = '<%=s2%>';//输出s2给js变量s
</script>两种情况
1 JS代码在JSP页面中, 这可以直接使用EL表达式 如:
[html] view plain copy print
<script type="text/javascript">
$(function () {
new BacklogOverview("${paramalert}");
});
</script>
2JS代码是单独的js 文件, 通过引入到 JSP中来这时候可通过提前定义JS变量的形式的解决,如:
[html] view plain copy print
<c:set var="contextPath" value="${pageContextrequestcontextPath}" scope="application"/>
<script>
<%--JS gloable varilible--%>
var contextPath = "${contextPath}";
</script>
在JSP页面上定义JS变量 contextPath
这样在之后引入的JS文件中就可以使用contextPath变量了
[html] view plain copy print
//Image setting
configfilebrowserImageUploadUrl = contextPath + "/ckeditor/uploadhtm";
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)