无法为 JSP 编译 class,并且当我使用数组制作导航栏时无法将字符串转换为布尔值

Unable to compile class for JSP and cannot convert from String to boolean when I use array to make a navbar

我想用 Arrays 创建一个导航栏并用 While.

循环它

首先,我在我的 jsp 文件上创建了一个变量,如下所示:

<%
int i, j;
i = 0;
j = 0;

String[][] NavMenu = new String[6][5];
NavMenu[0][0] = "Company Profile";
NavMenu[1][0] = "Product";
NavMenu[2][0] = "Marketing Plan";
NavMenu[3][0] = "News";
NavMenu[3][1] = "Event";
NavMenu[3][2] = "Promo";
NavMenu[3][3] = "Artikel";
NavMenu[3][4] = "Testimony";
NavMenu[4][0] = "Merchandise";
NavMenu[5][0] = "Job Vacancies";

String[][] NavLink = new String[6][5];
NavLink[0][0] = "company-profile-infiny-niaga-abadi.html";
NavLink[1][0] = "product.html";
NavLink[2][0] = "marketing-plan.html";
NavLink[3][0] = "#";
NavLink[3][1] = "news/event.html";
NavLink[3][2] = "news/promo.html";
NavLink[3][3] = "news/article.html";
NavLink[3][4] = "news/testimony.html";
NavLink[4][0] = "merchandise.html";
NavLink[5][0] = "job-vacancies.html";
%>

NavMenu 是导航栏菜单的文本,NavLink 是导航栏菜单的link。

然后,我将导航栏制作成这样:

<%
while (NavMenu[i][0]) { //ERROR ON HERE: cannot convert from String to boolean
    j = 1;

    //IF MENU HAVE A DROPDOWN
    if(NavMenu[i][1]){ //ERROR ON HERE: cannot convert from String to boolean
        if(NavMenu[i][0] == ActivePage) { %>
            <li class="active dropdown">
        <% } else { %>
            <li class="dropdown">
        <% } %>

        <a href="<%= NavLink[i][0] %>" class="dropdown-toggle" data-toggle="dropdown"><%=NavMenu[i][0]%> <b class="caret"></b></a>
        <ul class="dropdown-menu">

        <%
        while(NavMenu[i][j]) { //ERROR ON HERE: cannot convert from String to boolean %>
            <li>
                <a href="<%= NavLink[i][j]%>"><%= NavMenu[i][j]%></a>
            </li>
            <% j++;
        } %>
        </ul>
    </li>

    <% 
    //IF MENU DO NOT HAVE A DROPDOWN
    } else {
        if(NavMenu[i][0] == ActivePage){ %>
            <li class="active"><a href="<%= NavLink[i][0]%>"><%= NavMenu[i][0] %></a></li>
        <% } else {%>
            <li><a href="<%= NavLink[i][0] %>"><%= NavMenu[i][0] %></a></li>
        <%}
    }
    i++;
    j=0;
}
%>

如何解决这个问题?我不知道我应该怎么做才能让它发挥作用。

Java不像java脚本,不能使用字符串作为条件,在java中条件必须在boolean中。您可以使用 for 循环遍历 String 数组并执行您的逻辑

<%


String[][] NavMenu = new String[6][5];
NavMenu[0][0] = "Company Profile";
NavMenu[1][0] = "Product";
NavMenu[2][0] = "Marketing Plan";
NavMenu[3][0] = "News";
NavMenu[3][1] = "Event";
NavMenu[3][2] = "Promo";
NavMenu[3][3] = "Artikel";
NavMenu[3][4] = "Testimony";
NavMenu[4][0] = "Merchandise";
NavMenu[5][0] = "Job Vacancies";

String[][] NavLink = new String[6][5];
NavLink[0][0] = "company-profile-infiny-niaga-abadi.html";
NavLink[1][0] = "product.html";
NavLink[2][0] = "marketing-plan.html";
NavLink[3][0] = "#";
NavLink[3][1] = "news/event.html";
NavLink[3][2] = "news/promo.html";
NavLink[3][3] = "news/article.html";
NavLink[3][4] = "news/testimony.html";
NavLink[4][0] = "merchandise.html";
NavLink[5][0] = "job-vacancies.html";
%>

<%
for (int i=0; i<NavMenu.length; i++) { //ERROR ON HERE: cannot convert from String to boolean

    String navMenuValue = NavMenu[i][0];

    //IF MENU HAVE A DROPDOWN
    if(NavMenu[i].length > 1){ //ERROR ON HERE: cannot convert from String to boolean
        if(NavMenu[i][0].equals("ActivePage")) { %>
            <li class="active dropdown">
        <% } else { %>
            <li class="dropdown">
        <% } %>

        <a href="<%= NavLink[i][0] %>" class="dropdown-toggle" data-toggle="dropdown"><%=NavMenu[i][0]%> <b class="caret"></b></a>
        <ul class="dropdown-menu">

        <%
        for(int j=0;j<NavMenu[i].length;j++) { //ERROR ON HERE: cannot convert from String to boolean %>
            <li>
                <a href="<%= NavLink[i][j]%>"><%= NavMenu[i][j]%></a>
            </li>
            <% 
        } %>
        </ul>
    </li>

    <% 
    //IF MENU DO NOT HAVE A DROPDOWN
    } else {
        if(NavMenu[i][0].equals("ActivePage")){ %>
            <li class="active"><a href="<%= NavLink[i][0]%>"><%= NavMenu[i][0] %></a></li>
        <% } else {%>
            <li><a href="<%= NavLink[i][0] %>"><%= NavMenu[i][0] %></a></li>
        <%}
    }
}
%>