昨天在公司时,碰到个莫名其妙的bug,找了好久不知道原因,项目的框架是JSF、seam、利用Facelet做视图模板,spring、hibernate。最后发现在js代码模块中,不能含有有“>”或“<”,比如下面的代码,for循环中有个“<”:
var arr=[1,2,3]; var len=arr.length; for(var i=0;i<len;++i){ alert(i); }
这样会被facelet解析成标签的开始,所以会提示“Element type "len" must be followed by either attribute specifications, ">" or "/>"”。
解决方案:
把JS代码中"<"换成"<";把">"换成">"