情景:比如说产品有个大类,同样大类的产品放在一起显示。
我们要获取两个list,一个是去除重复元素后的大类集合,一个是要展示的产品类型。
1、去除重复元素
/*
* 打印2017经销商合约
*/
public String print_dealercontract2017() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
Viewcontract viewcontract= viewcontractDAOImpl.getByid(id);
String contractProductIdArr[]=viewcontract.getProductId().split(",");
List<String> joinList=new ArrayList<String>();
HashSet set=new HashSet();
for(String s:contractProductIdArr){
baseProduct = baseProductDAOImpl.getByid(s);
String aa=baseProduct.getCategory();
joinList.add(aa);
set.add(aa);
}
String productCategory = StringUtils.join(joinList, ",");//产品集合,用逗号隔开
String pcSet = StringUtils.join(set, ",");//大类集合,用逗号隔开
viewcontract.setProductCategory(productCategory);
viewcontract.setPcSet(pcSet);
request.setAttribute("viewcontract", viewcontract);
return "dealercontract2017";
}
2、在jsp页面显示
<c:set value="${ fn:split(viewcontract.productName,',') }" var="productName" />
<c:set value="${ fn:split(viewcontract.pcSet,',') }" var="pcSet" />
<c:set value="${ fn:split(viewcontract.productCategory,',') }" var="productCategory" />
<c:set value="${ fn:split(viewcontract.productPrice,';') }" var="productPrice" />
<c:set value="${ fn:split(viewcontract.orderQuantity,';') }" var="orderQuantity" />
<c:forEach var="r" begin="0" end="${fn:length(pcSet)-1}">
<p class=MsoNormal
style="text-indent:21.0000pt;mso-char-indent-count:2.0000;line-height:22.0000pt;mso-line-height-rule:exactly;">
<span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;">&#${r+9312 };${pcSet[r] }:</span><span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p>
</span>
</p>
<c:set var="aaa" value="97" />
<c:forEach var="i" begin="0" end="${fn:length(productName)-1}">
<c:if test='${productCategory[i]==pcSet[r] }'>
<p class=MsoNormal
style="text-indent:21.0000pt;mso-char-indent-count:2.0000;line-height:22.0000pt;mso-line-height-rule:exactly;">
<span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;">&#${aaa};.${productName[i] }:</span><span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p>
</span>
</p>
<c:set value="${ fn:split(productPrice[i],',') }" var="productNameArr" />
<c:set value="${ fn:split(orderQuantity[i],',') }" var="orderQuantityArr" />
<c:forEach var="j" begin="0" end="${fn:length(productNameArr)-1}">
<p class=MsoNormal
style="text-indent:21.0000pt;mso-char-indent-count:2.0000;line-height:22.0000pt;mso-line-height-rule:exactly;">
<span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;"><font
face="微软雅黑">订购量达到</font>
</span><u><span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);text-decoration:underline;text-underline:single;font-size:10.5000pt;mso-font-kerning:1.0000pt;"> ${orderQuantityArr[j] } </span>
</u><span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;"><font
face="微软雅黑">万元,产品单价为${productNameArr[j] }元</font>/kg;</span><span
style="mso-spacerun:'yes';font-family:微软雅黑;mso-bidi-font-family:Arial;color:rgb(0,0,0);font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p>
</span>
</p>
</c:forEach>
<c:set var="aaa" value="${aaa+1 }"/>
</c:if>
</c:forEach>
</c:forEach>