我按照产品规格或按照配置显示数据。
配置显示页面的左侧。当用户选择配置时,应过滤相关数据。 我已经制作了类别的属性,如屏幕尺寸,RAM,硬盘,颜色,尺寸,处理器,光驱等。 在它下面我显示的数据包括2GB,4GB,2.2GHz,蓝色,320GB等。
但我的问题是所有类别显示,如果它的子数据存在与否。
我不想显示类别,如果不存在子数据,如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> --%>
<a><%= aval %></a>
<%
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>
线。 有任何建议请..
答案 0 :(得分:1)
将If条件更改为
if(adata != null)
{
%>
<%-- <a><%= aname %></a> --%>
<a><%= aval %></a>
<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>
<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> --%>
<a><%= aval %></a>
<%
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>
标签