无法为 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>
<%}
}
}
%>
我想用 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>
<%}
}
}
%>