如何删除空白数据?

时间:2013-12-10 06:10:54

标签: java jsp

我按照产品规格或按照配置显示数据。

配置显示页面的左侧。当用户选择配置时,应过滤相关数据。 我已经制作了类别的属性,如屏幕尺寸,RAM,硬盘,颜色,尺寸,处理器,光驱等。 在它下面我显示的数据包括2GB,4GB,2.2GHz,蓝色,320GB等。 enter image description here

但我的问题是所有类别显示,如果它的子数据存在与否。 我不想显示类别,如果不存在子数据,如Screen Size为空,则不应显示。

我的JSP代码:

<%
            List<String> attribNameList = (List<String>)request.getAttribute("attribName");
            List<String> attribValueList = (List<String>)request.getAttribute("attribValue");
            List<String> attribDataList = (List<String>)request.getAttribute("attribData");
            List<Integer> acfIDList = (List<Integer>)request.getAttribute("attribacID");

            List<Integer> acIDList = (List<Integer>)request.getAttribute("acID");
            List<String> acNAMEList = (List<String>)request.getAttribute("acNAME");


            String aname,aval,adata,acname;
            Integer acfid,acid;

            for( int i=0;i<acIDList.size();i++)
            {
                acid=acIDList.get(i);
                acname=acNAMEList.get(i);
                //Print Category
                %>
                    <a style="color: black;"><%= acname %></a><br>
                <%

                for(int i1=0;i1<attribNameList.size();i1++)
                {
                    aname = attribNameList.get(i1);
                    aval = attribValueList.get(i1);
                    adata = attribDataList.get(i1);
                    acfid = acfIDList.get(i1);                          

                    if(acid == acfid)
                    {
                        //Print Attribute
                        %><br>
                            <%-- <a><%= aname %></a> &nbsp; --%>
                            <a><%= aval %></a> &nbsp;
                            <%
                                if(adata == null)
                                {

                                }
                                else
                                {
                                    %>
                                        <a><%= adata %></a>
                                    <%
                                }

                    }
                }
                %>
                <br>
                <% 
            }

        %> 

Here `acIDList` is a attribute category id and `acnameList` is category name list and `acfIDList` is a `foreign key` in attribute_master table so I have put a if condition that when `acID` and `acfID` matches it creates List and under it sub data display.

aval是属性值2,4,2.2, etc.adata is for GB, GHz, MP, etc.

所以我想删除空白的acName

如果数据不存在,我不想显示类别名称,所以我必须在

上加上一些条件
<a style="color: black;"><%= acname %></a><br>

线。 有任何建议请..

3 个答案:

答案 0 :(得分:1)

将If条件更改为

if(adata != null)                                
{
    %>
    <%-- <a><%= aname %></a> &nbsp; --%>
    <a><%= aval %></a> &nbsp;
        <a><%= adata %></a>
    <%
}

将您的aname打印放在if子句中。

同样要删除acname打印添加if条件如下。

//Print Category
if (attribNameList.size() !=  0
    %>
        <a style="color: black;"><%= acname %></a><br>
    <%
}

所以你的最终代码看起来应该是什么。

String aname,aval,adata,acname;
Integer acfid,acid;

for( int i=0;i<acIDList.size();i++) {

    ....
    ....

    //Print Category
    if (attribNameList.size() !=  0)
    { 
    %> 
      <a style="color: black;"><%= acname %></a><br>
    <%      
    }
    for(int i1=0;i1<attribNameList.size();i1++) {
      ....
      ....

      //Print Attribute
      if(adata != null)        
      {
      %>        
        <a><%= aval %></a> &nbsp;
        <a><%= adata %></a>             
      }
      %>
    <br>
<% 
}
%> 

答案 1 :(得分:1)

我建议您以这种方式尝试逻辑..解决您的问题..

for( int i=0;i<acIDList.size();i++)
        {
           int acid=acIDList.get(i);
            acname=acNAMEList.get(i);
            //Print Category                
            int i = getIndex(acid);
       if(i != -1)              
       {        aname = attribNameList.get(i);
                aval = attribValueList.get(i);
                adata = attribDataList.get(i);
                //Print full data 
      if(!aval.equals("")) //add your cond to check empty ..
          {  %>
                <a style="color: black;"><%= acname %></a><br>
              <%
                    %><br>
                        <%-- <a><%= aname %></a> &nbsp; --%>
                        <a><%= aval %></a> &nbsp;
                        <%
                            if(adata == null)
                            {         /*add you msg or html in case of null*/                   }
                            else //here all html with content and design
                            {  %>   <a><%= adata %></a>
                                <%
                            }
                }  }
            %>   <br>   <% 
        }

您可以在上面定义或任何服务器实用程序类..

 function int getIndex(int acid) 
{
    for(int i1=0;i1<attribNameList.size();i1++)
            {
                if(acid == acfIDList.get(i1))
                { return il; }
            }
    return -1;      
}

答案 2 :(得分:0)

不确定我是否正确,但如果你需要省略空\ _值,你可以使用

<c:if test="${CONDITION}">
</c:if>

标签