错误:否则没有。但我已经把它放在它之后

时间:2012-04-25 07:04:45

标签: java javascript jsp

当我执行以下代码时:

<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。那为什么错误?

3 个答案:

答案 0 :(得分:6)

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

即可
<% }
     else if (...

答案 1 :(得分:2)

您的错误在以下两行:

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

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

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

所以你需要将右括号放在同一个scriptlet中:

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

答案 2 :(得分:0)

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