在jsp中显示值

时间:2015-08-17 08:25:50

标签: java jsp

这是我目前的情况。如果我的代码如下所示,它永远不会显示,因为它没有价值。

<% int z = 0;
    int count = 3 
        do { %><% z++;} <c:if test="${not empty array[z]}">
                       <td width="50%" height="15px">${array[z]}</td>
                     </c:if>  while (z < count);%>

我尝试像这样编码(硬编码,用0代替z),它会显示记录。

<% int z = 0;
    int count = 3 
        do { %><% z++;} <c:if test="${not empty array[0]}">
                       <td width="50%" height="15px">${array[0]}</td>
                     </c:if>  while (0 < count);%>

或许你们可以指导我如何让它读取z值,但不能只读它为z。抱歉我的英语不好。

3 个答案:

答案 0 :(得分:0)

假设你的标签正确,请尝试在Java代码中进行测试,并且只有在这样的情况下才渲染单元格:

<% 
int z = 0;
int count = 3;
do {  
  z++;
  if( array[z] != null ) { //you might have to do additional checks here
   %>
   <td width="50%" height="15px"><%=array[z]%></td>
   <%
  }
} 
while (z < count);
%>

或者您可以尝试使用${not empty array[<%=z%>]}等,但由于我们很少使用scriptlet,因此我不确定。

作为第二种选择,尝试使用更清洁的<c:forEach>恕我直言:

<c:forEach var="z" begin="1" end="${count}">
   <c:if test="${not empty array[z]}">
      <td width="50%" height="15px">${array[z]}</td>
   </c:if>
</c:forEach>

答案 1 :(得分:0)

尝试以下方法:

<% int z = 0;
   int count = 3 
   do { 
      if (!array.isEmpty()) {
      %>
      <td width="50%" height="15px"><%=array[z]%></td>
 <%while(z < count)%>

答案 2 :(得分:0)

使用c:set为变量z或将其设置为pageContext

<% 
    int z = 0;
    int count = 3 
    do {  
      z++; 
      pageContext.setAttribute("z", z);
      %>
      <c:if test="${not empty array[z]}">
        <td width="50%" height="15px">${array[z]}</td>
      </c:if>
      <%}while (z < count);
%>