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表达式一定要使用双引号。
1、在原JSP页面中将这些值封装进hidden域,然后传给js文件比较直接的一种做法,但在后期维护时候可能会引起歧义(例如过一段时间后看JSP页面时候不知道这些hidden是干嘛的了)
2、我认为比较好的一种方式,在JSP页面中先声明一个<script></script>,在其中将你要传递的EL表达式作为全局变量写入,然后再导入外部JS代码
不可以的,el表达式是jsp页面中使用的。
编程的注意事项:
1、refactoring的基本方法就是每一步小小变化,每一步测试。
2、如果发现需要为一个程序添加一个特性,而代码结构使你无法很方便的那么做,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。
3、最好首先把成员变量和函数定义为private。随着软件开发的进一步深入,当其他类对该类提出"额外"的请求,你慢慢地放宽保护。
4、如果一个代码片断能够有独立意图的行为,那么不管它的大小,可能是一个简单的表达式,都应该有独立的方法,但如果没有这样清晰的意图,再多的代码都可以在一个方法里面.