springMVC实体用注解管理,多对多 set集合元素排序问题 解决

实现效果 分类在set集合里不可排序 现要使商家拥有的相同的分来在同一列,需要把set集合里的元素放入list 但是问题是页面是双循环,必须以 . 的形式取集合元素所以需要把list集合声明到实体中,只做临时存储,所以写到dto类,这样就可排序了 我们用一个内部类Collections 的sort ( ....)方法来排序 , 这样内层循环就可以取到拍好序的元素,从而达到目的




    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 {
//分类set
private 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;
}
} 

执行的 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";}






本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器怎么截长图?怎么使用浏览器截长图?

我们在使用电脑浏览网页的时候有可能会想截取整篇网页&#xff0c;由于页面在电脑上显示不全&#xff0c;阅读的时候都需要滚动条来看&#xff0c;直接截屏根本截不全整个网页&#xff0c;这时候就需要截取网页的长截图了&#xff0c;那么怎么使用浏览器截长图呢? 1、以Edge浏…

three.js 把geometry转换成BufferGeometry

在 three.js 的文档里面有这个方法 https://threejs.org/docs/index.html#api/en/core/BufferGeometry.fromGeometry var bufferGeometry new THREE.BufferGeometry().fromGeometry( geometry );

进栈出栈示意图

进栈出栈示意图 12345 一次进栈 可以是54321,21543,32541等, 原理 : 后进先出,先进后出

Windows11怎么设置时间?Win11时间设置教程

许多小伙伴在使用电脑的时候&#xff0c;也会去关注一下时间&#xff0c;那么针对Windows11系统来说&#xff0c;默认的时间是美区的时间&#xff0c;那么我们要怎么更改呢?其实操作方法十分的简单&#xff0c;下面小编就带着大家一起看看吧! 操作方法&#xff1a; 1、打开菜…

浏览器与JavaScript(一)

作为web前端工程师&#xff0c;每天都会使用浏览器&#xff0c;所以就想总结下浏览器的知识&#xff0c;下面开始正文&#xff0c;本文的东西都是拿Chrome浏览器来说的。 浏览器是多进程。 我们先打开浏览器然后打开一个页面&#xff0c;这个时候我们并不清楚浏览器在后台为我…

java方法的重载与覆盖的返回值类型

public class A extends B{//下面的是方法的覆盖&#xff08;重写overRiding&#xff09;public void riding(){System.out.println("this is overRiding ");}//下面两个函数是方法的重载(overLoading)&#xff0c;但是返回值类型不同&#xff0c;可以运行public St…

edge浏览器设置兼容模式怎么设置

edge浏览器在win10系统中默认使用&#xff0c;整体来说还算是个不错的浏览器&#xff0c;跟微软账户关联&#xff0c;所以使用的人还挺多。但是对于edge浏览器来说&#xff0c;很多网页都需要使用兼容模式进行打开&#xff0c;这里小编就给大家分享下edge浏览器兼容模式设置的方…

threejs 局部辉光

首先看一下局部辉光的效果。 困扰很久的问题&#xff0c;终于解决了&#xff01;&#xff01;&#xff01; 具体找到解决的方法是看了这里和这里2。也是看了这两个帖子之后才找到解决方法。 这种辉光效果也是用后期处理方法&#xff0c;大家可以先看官网上的这个例子。 rend…

谷歌浏览器截图快捷键是什么?谷歌浏览器截图操作方法介绍

谷歌浏览器的截图方法谷歌浏览器没有自带的截图功能&#xff0c;我们需要下载相关的扩展功能和插件。 方法一、快捷键截图 1、找到键盘按键“Print Screen”按下即可全屏截图。 谷歌浏览器截图快捷键是什么&#xff1f;谷歌浏览器截图操作方法介绍 方法二、软件自带截图功能…

Uncaught (in promise) DOMException 报错

最近在项目里面加入视频自动播放&#xff0c;有时候会报错(RT)&#xff0c;不能自动播放。 <videoid"videoPlayer"v-show"!isNormalCamera"class"preview-video"name"media"controls"controls"autoplay"autoplay&q…

static,构造器,执行顺序

//静态代码块(加载类的时候执行)-->非静态代码块(执行构造器之前执行)-->然后是构造器//......

Win7系统默认浏览器的更改教程

Win7的默认浏览器一般是ie浏览器&#xff0c;但是我们经常会下载使用其它的浏览器&#xff0c;这时候我们就需要更改默认浏览器。那么应该如何更改默认浏览器呢?下面就和小编一起来看看Win7系统默认浏览器的更改教程吧 Win7系统默认浏览器的更改教程 1、首先在开始菜单中打开…

threejs 判断对象是否在可视区内

在threejs 中判断一个对象&#xff08;vector坐标&#xff09;是否在相机的可视区内 let tempV vector.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);if ( (Math.abs(tempV.x) > 1) || (Math.abs(tempV.y) > 1) || (Math.abs(tempV.…

求质数

public class Demo2 {//求质数public static void main(String[] args) {for (int i 2; i < 100; i) {int j ;//1 和其本身的数 就不用除了 只要看其他的数可以除进吗如果能除进就不是质数 要跳出去不能打印这个数 这个数不是质数for (j 2; j < i; j)if (i % j 0)bre…

IE浏览器高级设置如何还原

在使用浏览器的时候&#xff0c;可能会给浏览器更换字体、换上自己喜欢的皮肤等等&#xff0c;但是看久了还是想恢复成高级设置&#xff0c;那具体要怎么操作呢?下面小编就给大家详细地介绍一下吧&#xff0c;希望可以帮到你! 步骤如下&#xff1a; 1、进入控制面板&#xf…

threejs 用 ExtrudeGeometry 画管线

首先说一下ExtrudeGeometry ,可以先看官网,这个方法的意思是沿着给定的路径拉伸一个平面图形&#xff0c;然后就成为3D图形了。 所以很明显这个方法要两个参数&#xff0c;路径和图形。 然后接下来说管线的问题。 var radius data[i][Diameter] - 0; // 管子的半径 var sha…

java问题,(x.equals(y) == true)有相同的hashCode 应该是不一定

这个问题在equals没有被重写的情况下是成立 的,如果说x,y是String类型的是没有问题 虽然String类型重写了equals方法但是String比较的是只是字符串值, 对于对象就不一定了 如果没有重写 这个x,y有相同的hashCode 但是如果被重写了equals方法就不一定了,为什么这么说呢,如果我们…

windows7系统取消护眼模式的方法

护眼模式可以让用户更好的保护眼睛&#xff0c;但是因为色调的关系&#xff0c;可能会导致某些软件显示图像出现问题&#xff0c;所以很多用户还是会选择取消这个护眼模式&#xff0c;具体要怎么取消呢&#xff0c;来看下详细的关闭方法吧。 windows7系统取消护眼模式的方法 …

RTMP 在浏览器端播放

RTSP、RTMP 也有很多在说的。然而我就是总结下我最近在使用RTMP的理解。 首先说一下RTMP协议的定义, 实时消息协议&#xff08;英语&#xff1a;Real-Time Messaging Protocol&#xff0c;缩写RTMP&#xff09;也称实时消息传输协议&#xff0c;是最初由Macromedia为通过互联网…

自定义spring配置文件位置

spring配置文件 springtest.xml 转移位置 看web.xml配置文件位置 <!-- springMVC 配置 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--…