java在JSP中显示if条件错误的表达式语言(EL)
我正在从登录发送数据。java给斯图。jsp
下面是登录名。java代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
boolean message = true;
request.setAttribute("message", message); // This will be available as ${message}
request.getRequestDispatcher("stu.jsp").forward(request, response);
}
[这是stu.jsp代码(显示错误)] 请点击图片查看错误代码
下面的代码与上图中的代码相同 显示EL中if条件的错误
<% if ( ${message} ) { %>
<p> Today is weekend</p>
<% } else { %>
<p> Today is not weekend</p>
<% } %>
下面是运行服务器时的完整错误消息
HTTP Status 500 – Internal Server Error
Type Exception Report
Message Unable to compile class for JSP:
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [89] in the jsp file: [/stu.jsp]
Syntax error, insert ") Statement" to complete IfStatement
86:
87:
88:
89: <% if ( ${message} ) { %>
90: <p> Today is weekend</p>
91: <% } else { %>
92: <p> Today is not weekend</p>
An error occurred at line: [89] in the jsp file: [/stu.jsp]
$ cannot be resolved to a variable
86:
87:
88:
89: <% if ( ${message} ) { %>
90: <p> Today is weekend</p>
91: <% } else { %>
92: <p> Today is not weekend</p>
An error occurred at line: [89] in the jsp file: [/stu.jsp]
Syntax error on tokens, delete these tokens
86:
87:
88:
89: <% if ( ${message} ) { %>
90: <p> Today is weekend</p>
91: <% } else { %>
92: <p> Today is not weekend</p>
An error occurred at line: [91] in the jsp file: [/stu.jsp]
Syntax error on token "else", delete this token
88:
89: <% if ( ${message} ) { %>
90: <p> Today is weekend</p>
91: <% } else { %>
92: <p> Today is not weekend</p>
93: <% } %>
94:
An error occurred at line: [647] in the generated java file: [D:\Browser Downloads\setup -2\eclipse\TOMCAT\apache-tomcat-9.0.54\work\Catalina\localhost\PPP\org\apache\jsp\stu_jsp.java]
Syntax error, insert "}" to complete Block
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:487)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
pack.login.doPost(login.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.
请帮我解决这个问题 先谢谢你
# 1 楼答案
message
是JSP中的一个属性,<%... %>
中的所有内容都是java代码在Java代码中,不能使用
${}
,因为只能使用Java语法知道了这一点,你有两种可能性:
使用
request.getAttribute()
内部<% %>
访问message
:或者你可以使用
c:if
: