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配置しました。では、なぜエラーが発生するのでしょうか?elseif

4

3 に答える 3

6

それらを同じスクリプト ブロックに配置する必要があります。%>終わりと始まりを削除するだけ<%です:

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

エラーは次の 2 行にあります。

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

結果の Java コードでは、(基本的に) 次のように変換されます。

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

したがって、次のように同じスクリプトレットに閉じ括弧を配置する必要があります。

<% } 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 に答える