JS中如何引用EL表达式

JavaScript011

JS中如何引用EL表达式,第1张

注意:alert的时候,要把el表达式用引号引起来

如果是单独的js文件,el表达式是不起作用的,

EL表达式是在服务端执行的,服务端执行完成后再传给客户端的,js是在客户端执行的,el在js前就被执行了

把引入的外部js改为jsp文件,然后在jsp页面中引入<script src="myjs.jsp"></script>

在完全是js的jsp文件中,在执行的时候会出现乱码在顶部加入<%@page language="java" contentType="text/htmlcharset=UTF-8" pageEncoding="UTF-8"%>可解决乱码

然后在jsp页面中引入myjs.jsp,

<script src="myjs.jsp" type="text/javascript"></script>

但是如果js文件有创建html,就会出现错误,比如document.createElement('<option>' )即使转义后

document.createElement('<option>' )也没有效果 ,在解析的时候,会创建

document.createElement('<html><option>' )使用时候不识别的标识符 .

可以直接使用document.createElement('option')

火狐不支持select.options.appendChild(option),IE支持

select.appendChild(option) IE和Firefox都支持

火狐不支持option.innerText="test",

为兼容 改写为option.innerHTML="test"

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表达式吧:

var str = '${str}'

var str = '${obj.属性名}'

但是只可以再jsp页面的<script></script>中使用,外部引入的js文件中不能使用。