1

当我执行以下代码时:

<script type="text/javascript">
function UploadMessage() {
<%! String message = null; 
    boolean AttemptToUploadFile = false;
%>
    <% 
        message = (String)request.getAttribute("SuccessMessage");
        if(message != null) {
    %>
            alert("File Successfully Uploaded !");
            <% } %>
            <% else if((Boolean)request.getAttribute("UploadAttempt")) { %>
                  alert("Unable to upload file");
                <%}%>

}

我收到以下错误:

media/work documents/UnderTest/NetbeansCurrent/ProjectSnippets/build/generated/src/org/apache/jsp/portfolio_005fone_jsp.java:252: error: 'else' without 'if'
else if((Boolean)request.getAttribute("UploadAttempt")) { 
1 error

错误说if没有,else但我已经在else之后立即放置if。那为什么会出错呢?

4

3 回答 3

6

您必须将它们放在同一个脚本块中。只需删除结尾%>和开头<%

<% }
     else if (...
于 2012-04-25T07:07:03.750 回答
2

您的错误在这两行:

<% } %>
<% else if((Boolean)request.getAttribute("UploadAttempt")) { %>

在生成的 java 代码中,它们将(基本上)被翻译为:

}
out.append("\n");
else if(...

因此,您需要将右括号放在同一个 scriptlet 中,如下所示:

<% } else if((Boolean)request.getAttribute("UploadAttempt")) { %>
于 2012-04-25T07:09:11.877 回答
0

您没有立即将它放在if. 它之间有%>+换行符+ <%。JSP 必须在生成的代码中输出换行符,因此在生成的 java 代码之间和中间有类似的东西out.print("\n\t\t");(包括缩进) 。}else if

于 2012-04-25T07:10:14.767 回答