js中使用el表达式

JavaScript023

js中使用el表达式,第1张

js控制中用到了el表达式,最开始源码如下:

var selected = ${requestScope.xxxxForm.recordNumPerPage}

这样始终js错误,因为在第一次的时候requestScope.xxxxForm.recordNumPerPage为null。

于是在boss的指导下,简单的加了两个引号,代码变成

var selected = “${requestScope.xxxxForm.recordNumPerPage}”

功能自动实现。

附上整个函数代码:

function getSelected(name){  

  var selects = document.getElementsByName(name)  

  var selected =  “${requestScope.xxxxForm.recordNumPerPage}"  

  if(selected == undefined || selected == null || selected ==""){  

    return false  

  }  

  for(var j = 0 j < selects.length j++ ){  

     for(var i = 0 i = selects[j].length i++){  

       if(selects[j].options[i].value == selected){  

         selects[j].options[i].selectd = true  

       }   

     }  

  }       

}

总之,在js中使用el表达式一定要使用双引号。

el毕竟是服务器端的脚本,怎么可能和客户端脚本混用呢?

执行过程是服务器先解析了服务器端脚本后,结果返回到客户端,由浏览器执行返回的结果,这个两个步骤,不能混合搭配使用的。

我觉得有两种做法:

一种是你说的,用字符串,然后客户端拆分再操作。

另一种是用el循环,输出的东西是客户端脚本的数组操作

var aaa=new Array()

<c:forEach items="${reportName}" var="mm">

aaa.push("${mm}")

</foreach>

然后操作aaa

两种方法大同小异

在纯js文件中,是不能直接用 EL表达式获取jsp内置session对象的值的

你需要,先在jsp中,写上js的临时变量,

<script type="text/javascript">

        var name="{name}"

</script>

然后在纯 js中 引用这个变量, 注意纯js文件的引用,应该在上面定义的js 的下面

<script type="text/javascript" src="xxx.js">