有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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代码(显示错误)] 请点击图片查看错误代码

click to view image

下面的代码与上图中的代码相同 显示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) 个答案

  1. # 1 楼答案

    message是JSP中的一个属性,<%... %>中的所有内容都是java代码

    在Java代码中,不能使用${},因为只能使用Java语法

    知道了这一点,你有两种可能性:

    使用request.getAttribute()内部<% %>访问message

    <% if ((Boolean)request.getAttribute("message")) { %>
             <p> Today is weekend</p>
          <% } else { %>
             <p> Today is not weekend</p>
          <% } %> 
    

    或者你可以使用c:if

    <c:if test="${message}">
        <p> Today is weekend</p> 
    </c:if>
    <c:if test="${! message}">
        <p> Today is not weekend</p> 
    </c:if>