自己整理的关于java 实现菜单或内容的上移下移的思路, 希望能帮助到一些新手,老手就别介意啊
数据库表对应的字段status,当上移时当前记录status-1,status-1条记录+1,值互换,status为12345的记录,假如status为23的记录被删除;...
数据库 表对应的字段 status,当上移时 当前记录status-1,status-1条记录+1,值互换,
status 为 1 2 3 4 5 的记录,假如 status为2 3的记录被删除;现在上移status为4的记录
<input type="button" value=“1” id=“upORdown” >上移</a>
<input type="button" value=“2” id=“upORdown”>下移</a>
action=“/my/upORdown!upORdown.action?ids=${status}&oneId=“upORdown”;//此处的upORdown不能这样赋值给oneId (说明:使用js赋值)
当前的status值 由页面action带到后台 假设带的参数命名为ids,
public void upORdown(){
Integer ids=0;
Integer oneId=0;//用于判断执行上移还是下移
//get和set方法省略
if(this.getOneId==1){
///上移:
for(i=this.getIds();i=<this.maxstatus;i - -)//用于循环,过滤 status值为2 3的记录,此记录已删除;maxstatus 为数据库中最大的status值,
//需要先查询在使用
{
aOBJ=this.service.selectBystatus(this.getIds());//查询由action带到后台值为status的记录
bOBJ=this.service.selectBystaus(i- -);//查询status为i- -对象是否存在;
if( bOBJ!=null&& Integer a= bOBJ.getStatus()){
this.getIds()=a;//将status值为i- -赋给当前的status; 将上一条和下一条的status值互换
this.service.aOBJupdateById( Integer.parse(aOBJ.getId()) , a );//根据aId更新aOBJ对象的status
Integer b=this.getIds();//将aOBJ对象的status值赋给bOBJ对象的status,将上一条和下一条的status值互换
this.service.update(bOBJ.getId(),b)//更新bOBJ对象的status
list=this.service.selectAllBystatus();//重新查一遍数据,根据status升序查找
}
}else if(this.getOneId==2){
//下移 status 为 1 2 3 4 5 的记录,假如 status为2 3的记录被删除;现在下移status为1的记录
for(i=this.getIds();i=<this.maxstatus;i++){
aOBJ=this.service.selectBystatus(this.getIds());//查询由action带到后台值为status的记录
bOBJ=this.service.selectBystaus(i++);//查询status为i++对象是否存在;
if( bOBJ!=null&&Integer a=bOBJ.getStatus()){
this.status=a;// 将bOBJ对象status值赋给aOBJ对象的status; 将上一条和下一条的status值互换
this.service.aOBJupdateById( Integer.parse(aOBJ.getId()) , a);//根据aOBJ的id更新自己的status
Integer b=aOBJ.getStatus();//将aOBJ对象的status值赋给bOBJ对象的status,将上一条和下一条的status值互换
this.service.bOBJupdateById(bOBJ.getId(),b)//更新bOBJ对象的status
list=this.service.selectAllBystatus();//重新查一遍数据,根据status升序查找
}
} 展开
status 为 1 2 3 4 5 的记录,假如 status为2 3的记录被删除;现在上移status为4的记录
<input type="button" value=“1” id=“upORdown” >上移</a>
<input type="button" value=“2” id=“upORdown”>下移</a>
action=“/my/upORdown!upORdown.action?ids=${status}&oneId=“upORdown”;//此处的upORdown不能这样赋值给oneId (说明:使用js赋值)
当前的status值 由页面action带到后台 假设带的参数命名为ids,
public void upORdown(){
Integer ids=0;
Integer oneId=0;//用于判断执行上移还是下移
//get和set方法省略
if(this.getOneId==1){
///上移:
for(i=this.getIds();i=<this.maxstatus;i - -)//用于循环,过滤 status值为2 3的记录,此记录已删除;maxstatus 为数据库中最大的status值,
//需要先查询在使用
{
aOBJ=this.service.selectBystatus(this.getIds());//查询由action带到后台值为status的记录
bOBJ=this.service.selectBystaus(i- -);//查询status为i- -对象是否存在;
if( bOBJ!=null&& Integer a= bOBJ.getStatus()){
this.getIds()=a;//将status值为i- -赋给当前的status; 将上一条和下一条的status值互换
this.service.aOBJupdateById( Integer.parse(aOBJ.getId()) , a );//根据aId更新aOBJ对象的status
Integer b=this.getIds();//将aOBJ对象的status值赋给bOBJ对象的status,将上一条和下一条的status值互换
this.service.update(bOBJ.getId(),b)//更新bOBJ对象的status
list=this.service.selectAllBystatus();//重新查一遍数据,根据status升序查找
}
}else if(this.getOneId==2){
//下移 status 为 1 2 3 4 5 的记录,假如 status为2 3的记录被删除;现在下移status为1的记录
for(i=this.getIds();i=<this.maxstatus;i++){
aOBJ=this.service.selectBystatus(this.getIds());//查询由action带到后台值为status的记录
bOBJ=this.service.selectBystaus(i++);//查询status为i++对象是否存在;
if( bOBJ!=null&&Integer a=bOBJ.getStatus()){
this.status=a;// 将bOBJ对象status值赋给aOBJ对象的status; 将上一条和下一条的status值互换
this.service.aOBJupdateById( Integer.parse(aOBJ.getId()) , a);//根据aOBJ的id更新自己的status
Integer b=aOBJ.getStatus();//将aOBJ对象的status值赋给bOBJ对象的status,将上一条和下一条的status值互换
this.service.bOBJupdateById(bOBJ.getId(),b)//更新bOBJ对象的status
list=this.service.selectAllBystatus();//重新查一遍数据,根据status升序查找
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询