问题描述
我的一段JS中有个${}字符,是一个正则表达式中的,并且在<script type="text/javascript" id="ScriptProxy1">...</script>中,但这样的JSP编译就通不过,JAVA错如下:org.apache.jasper.JasperException: /alert.jsp(10,3932) "${}" contains invalid expression(s): javax.servlet.jsp.el.ELException: Encountered "}", expected one of [<INTEGER_LITERAL>, <FLOATING_POINT_LITERAL>, <STRING_LITERAL>, "true", "false", "null", "(", "-", "not", "!", "empty", <IDENTIFIER>]org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:200)org.apache.jasper.compiler.JspUtil.validateExpressions(JspUtil.java:596)org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:594)org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:896)org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)org.apache.jasper.compiler.Node$Root.accept(Node.java:456)org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)org.apache.jasper.compiler.Validator.validate(Validator.java:1475)org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:214)org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)奇怪了,一个JS语法怎么会引起JAVA报错呢,谁知道这个问题怎么解决?
解决方案
页首加上<%@ page isELIgnored="true"%>
解决方案二:
这个是EL表达式啊,你在JS中写可以加一下转义符看看