生活随笔
收集整理的這篇文章主要介紹了
springMVC实体用注解管理,多对多 set集合元素排序问题 解决
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
實現(xiàn)效果 分類在set集合里不可排序 現(xiàn)要使商家擁有的相同的分來在同一列,需要把set集合里的元素放入list 但是問題是頁面是雙循環(huán),必須以 . 的形式取集合元素所以需要把list集合聲明到實體中,只做臨時存儲,所以寫到dto類,這樣就可排序了 我們用一個內(nèi)部類Collections 的sort ( ....)方法來排序 , 這樣內(nèi)層循環(huán)就可以取到拍好序的元素,從而達(dá)到目的
? ? jsp頁面
<c:forEach items="${businessList}" var="businessDto"><c:forEach items="${businessDto.busniessAssortList}" var="busniessAssort" varStatus="_index"><a style="border:2px solid #DBDBDB;padding: 2px 4px;margin-left:3px;" title="修改" href="${pageContext.request.contextPath}/adminBusiness/toUpdateBusinessAssort.do?id=${businessDto.id}&busniessAssortDto.id=${busniessAssort.id}">${busniessAssort.name}??</a><label style="font-size:20px;color:red;cursor: pointer;" οnclick="delBusinessAssortRef(${businessDto.id},${busniessAssort.id});" >?</label></c:forEach>
</c:forEach>?
實體:
pojo 類
@Entity
@Table(name = "BUSINESS")
@JsonAutoDetect
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "shopkeeper","dishAssorts", "busniessAssorts", "empBusRefs", "orders","orderDetails", "userAccounts", "activities"})
public class Business implements java.io.Serializable {//分類setprivate Set<BusniessAssort> busniessAssorts = new HashSet<BusniessAssort>(0);@ManyToMany(mappedBy = "businesss", cascade = { CascadeType.PERSIST })public Set<BusniessAssort> getBusniessAssorts() {return busniessAssorts;}public void setBusniessAssorts(Set<BusniessAssort> busniessAssorts) {this.busniessAssorts = busniessAssorts;}/*其他get/set方法*/}
dto 類
public class BusinessDto extends Business implements java.io.Serializable,Comparable<BusinessDto> {//頁面取這個集合即可得到處理后的元素順序private List<BusniessAssort> busniessAssortList = new ArrayList<BusniessAssort>();//排序public List<BusniessAssort> getBusniessAssortList() {return busniessAssortList;}public void setBusniessAssortList(List<BusniessAssort> busniessAssortList) {this.busniessAssortList = busniessAssortList;}
}
執(zhí)行的 controllor 層方法
/*** for admin*/@RequestMapping("/toAdminBusniessAssort.do")public String toBusinessInfo(BusinessDto businessDto) {Pager pager = this.calculatePagedInfo();pager.setPageSize(pager.getPageSize()>20 ? pager.getPageSize() : 20); businessDto.setDishType(1L);//第一層排序 List<BusinessDto> businessList = businessService.getBusinessAllForAdmin(pager, businessDto);Collections.sort(businessList,new Comparator<BusinessDto>() {public int compare(BusinessDto o1, BusinessDto o2) { return o2.getId().compareTo(o1.getId());}});第二層排序 for (BusinessDto businessDto2 : businessList) {//分類排序List<BusniessAssort> busniessAssortList = new ArrayList<BusniessAssort>();busniessAssortList.addAll(businessDto2.getBusniessAssorts());businessDto2.setBusniessAssortList(busniessAssortList);Collections.sort(businessDto2.getBusniessAssortList(),new Comparator<BusniessAssort>() {public int compare(BusniessAssort o1, BusniessAssort o2) { return o2.getId().compareTo(o1.getId());}});}if(businessDto!=null){if(StringUtils.hasText(businessDto.getName())){this.getRequest().setAttribute("name", businessDto.getName()); }}this.getRequest().setAttribute("businessList", businessList);//這里只能把businessList 傳到頁面 return "admin/business/adminBusAssortRef";}
總結(jié)
以上是生活随笔為你收集整理的springMVC实体用注解管理,多对多 set集合元素排序问题 解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。