利用java如何实现在删除信息后刷新页面功能

发布时间:2020-11-17 14:25:49

来源:亿速云

阅读:74

作者:Leah

这篇文章给大家介绍利用java如何实现在删除信息后刷新页面功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

我就废话不多说了,大家还是直接看代码吧~

//执行的是删除信息的操作

String a=request.getParameter("name");

a = URLEncoder.encode(a, "ISO-8859-1");

String name = URLDecoder.decode(a, "UTF-8");

String num=request.getParameter("num");

System.out.println("name:"+name+"num:"+num);

String sql="delete from person_info where name=? and num=?";

String sz[]={name,num};

JdbcUtils.update(sql, sz);

//刷新操作

String sqls="select * from person_info";

ResultSet rs=JdbcUtils.select(sqls, null);

ArrayList list=new ArrayList();

try {

while(rs.next()){

Person_info pi=new Person_info(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6));

list.add(pi);

}

request.setAttribute("list", list);

request.getRequestDispatcher("Personnel_definition.jsp").forward(request, response);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

补充知识:关于分页时怎么实现当本页面最后一条记录被删除时,自动向上一个页面跳转的实现(java实现)

##问题详解

在做批量删除时,发现若批量删除整页时,会自动跳到第一页首页,而不是返回删除当前页的上一页,不符合产品要求且使界面交互不好,给用户带来糟糕体验。

##思路详解

在controller层传参时要考虑到不仅要传入需要删除的id集合,同时传入pageSize,pageNum以及总条数集合的查询条件(如:本示例会传入groupId(分组id)),在删除成功后初始化当前页,先根据查询条件查询出总条数数量,在pageSize不等于null或为0的情况下。算出余数[(pageSize*pageNum-count)%pageSize ].若余数为0,则当前页等于pageNum-1;若余数不为0,则当前页=pageNum.将结果当前页传给前台即可。

##后台代码实现

#controller层#

@Api(description = "分组下的学生",value = "分组下的学生")

@RestController

@RequestMapping("studentGroup")

public class StudentGroupController {

@Autowired

private RestStudentGroupService restStudentGroupService;

@RequestMapping(value = "deleteGroupStudent",method = RequestMethod.POST)

@ApiOperation(value = "删除分组中的学生",notes = "删除分组中的学生")

public ResponseObj deleteGroupStudent(@RequestParam(value = "groupId",required = true)Long groupId,

@RequestParam(value = "ids",required = true)String ids,

@RequestParam(value = "pageSize",required = false)Integer pagesize,

@RequestParam(value = "pageNum",required = false)Integer pageNum){

return restStudentGroupService.deleteGroupStudent(groupId,ids,pagesize,pageNum);

}

}

#service层#

@FeignClient(value = ServiceName.VALUE)

public interface RestStudentGroupService {

@RequestMapping(value = "/school/cloud/student/deleteGroupStudent",method = RequestMethod.POST)

public ResponseObj deleteGroupStudent(@RequestParam(value = "groupId")Long groupId,

@RequestParam(value = "ids")String ids,

@RequestParam(value = "pageSize")Integer pagesize,

@RequestParam(value = "pageNum")Integer pageNum);

}

#serviceImpl层#

@Service

public class RestStudentGroupServiceImpl implements RestStudentGroupService {

@Autowired

private DubboStudentGroupService dubboStudentGroupService ;

@Override

public ResponseObj deleteGroupStudent(Long groupId,String ids,Integer pageSize,Integer pageNum) {

List idList = TextUtils.split(ids);

if(groupId == null || idList== null || idList.size() == 0){

ResponseObj responseObj = ResponseObj.ERROR("参数错误");

responseObj.setSuccess(true);

return responseObj;

}

ServiceResult serviceResult = dubboStudentGroupService .deleteCorpGroup(idList, groupId);

if(!serviceResult.getSuccess()){

throw new RuntimeException("分组下学生查询失败");

}

//应前端要求加此dto,封装传给前台的当前页属性

CurrenPageDto currenPageDto=new CurrenPageDto();

//初始化当前页

Integer currentPage = 1;

//查出该分组id下的学生数量

ServiceResult itemCountLongs = dubboStudentGroupService.getTotalCount(groupId);

Long itemCountLong= itemCountLongs.getResult();

Integer itemCount = itemCountLong!=null ? itemCountLong.intValue() : 0;

//"查询到学生数量:{},pageSize:{}", itemCount,pageSize;

if(pageSize != null && pageSize != 0){

//算出余数

Integer temp = (pageNum*pageSize-itemCount)%pageSize;

if(temp == 0){

//余数为0的话就pageNum-1

currentPage = (pageNum - 1) == 0 ? 1 : (pageNum -1) ;

}else {

//余数不为0则等于pageNum

currentPage = pageNum;

}

currenPageDto.setPresentPage(currentPage);

}

ResponseObj responseObj = ResponseObj.SUCCESS();

responseObj.setData(currenPageDto);

return responseObj;

}

}

#dubbo接口的service层#

①://删除分组下的学生

ServiceResult deleteCorpGroup(List idList,Long groupId);

②://根据条件查询对应的条目总数

ServiceResult getTotalCount(Long groupId);

#dubbo接口的serviceImpl层#

①://删除分组下的学生

@Override

public ServiceResult deleteCorpGroup(List idList, Long groupId) {

ServiceResult result = new ServiceResult<>();

try {

studentGroupDao.deleteCorpGroup(idList, groupId);

} catch (Exception e) {

log.error("调用{}方法 异常", "[RestStudentGroupServiceImpl .deleteCorpGroup]");

log.error("方法使用参数:[idList:{},groupId:{}]", idList, groupId);

log.error("异常信息:{}", e);

result.setErrMessage("调用deleteCorpGroup方法异常,异常信息:" + e.getMessage());

}

return result;

}

②://根据条件查询对应的条目总数

@Override

public ServiceResult getTotalCount(Long groupId) {

ServiceResult result = new ServiceResult<>();

try {

long count = studentGroupDao.getFindCorpGroupDirectoryCount(groupId);

result.setResult(count);

} catch (Exception e) {

log.error("调用{}方法 异常", "[RestStudentGroupServiceImpl .getTotalCount]");

log.error("方法使用参数:[groupId:{}]", groupId);

log.error("异常信息:{}", e);

result.setErrMessage("调用getTotalCount方法异常,异常信息:" + e.getMessage());

}

return result;

}

#dubbo接口的dao层#

①://删除分组下的学生

Long deleteCorpGroup(@Param(value = "idList") List idList,@Param(value = "groupId") Long groupId);

②://根据条件查询对应的条目总数

Long getFindCorpGroupDirectoryCount(@Param(value = "groupId") Long groupId);

#dubbo接口的sql#

①://删除分组下的学生

delete from student_group where group_id = #{groupId} and id in

open="(" close=")">

#{id}

②://根据条件查询对应的条目总数

SELECT COUNT(1)

FROM student_group

where group_id = #{groupId}

#Entity类(学生分组类)#(get,set函数省略)

public class StudentGroup implements java.io.Serializable {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

* @描述:

* @字段:id BIGINT(19)

*/

private Long StudentGroupId;

/**

* @描述:

* @字段:group_id BIGINT(19)

*/

private Long groupId;

/**

* @描述:

* @字段:id BIGINT(19)

* 此id为学生表id

*/

private Long id;

/**

* @描述:创建时间

* @字段:create_time DATETIME(19)

*/

private java.util.Date createTime;

* @描述:创建人用户名

* @字段:create_user_name VARCHAR(30)

*/

private String createUserName;

/**

* @描述:创建人用户ID

* @字段:create_user_id BIGINT(19)

*/

private Long createUserId;

/**

* @描述:更新时间

* @字段:update_time DATETIME(19)

*/

private java.util.Date updateTime;

* @描述:更新人用户名

* @字段:update_user_name VARCHAR(30)

*/

private String updateUserName;

/**

* @描述:更新人用户ID

* @字段:update_user_id BIGINT(19)

*/

private Long updateUserId;

}

#Entity类(学生类)#(get,set函数省略)

public class Student implements java.io.Serializable {

/**

*

*/

private static final long serialVersionUID = 1L;

private Long id;

private String name ;

private Integer age;

}

关于利用java如何实现在删除信息后刷新页面功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

java 刷新界面_利用java如何实现在删除信息后刷新页面功能相关推荐

  1. java石头剪刀布界面_利用Java模拟石头剪刀布游戏

    模拟石头剪刀布游戏 import java.util.Scanner; public class Sjb { public static void main(String[] args) { Scan ...

  2. java远控_利用Java实现远程控制

    利用 Java 实现远程控制 摘 要: 介绍了远程控制地原理 , 详细地叙述了利用 Java 实现远程控制软件地程序设计方法和要点 , 并给出了要点地具体实现方法 . 关键词: 远程控制: Java ...

  3. java 实现网络通信_利用Java怎么样实现网络通信功能

    利用Java怎么样实现网络通信功能 发布时间:2020-11-20 15:19:04 来源:亿速云 阅读:72 作者:Leah 利用Java怎么样实现网络通信功能?相信很多没有经验的人对此束手无策,为 ...

  4. java invoke 泛型_利用Java反射机制和泛型,全自动解析json

    有啦这个简直,太爽啦, 利用Java 反射机制,利用Class 就可以得到 类的 变量  Field[] fields=cls.getDeclaredFields(); 还可以通过类中 的方法名字 去 ...

  5. java post 注册_利用JAVA发送POST请求(垃圾注册就是这么产生的) | 学步园

    大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数就可以了, ...

  6. java游戏循环_利用Java循环语句实现攻击防御塔小游戏

    /* * 时间:2018-3-21 * 目的:practice * 内容:利用Java循环语句实现攻击防御塔小游戏 * 使用Java while语句实现一个英雄攻击防御塔的小程序,防御塔血量总计100 ...

  7. java做可视化界面_利用JAVA编写可视化界面

    /* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 作 者: 李洪悬 * 完成日期: 2012 年 1 ...

  8. java jmap 分析_利用java虚拟机的工具jmap分析java内存情况

    有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug可能会变得异常复杂,利用工具去分析整个java application 内 ...

  9. java qq 界面_【Java】仿真qq尝试:聊天界面 响应用户输入

    需求分析: 逐步完善一个"qq仿真"程序. 参考: 1.文本框与文本区:http://www.weixueyuan.net/view/6062.html 2.java布局:http ...

最新文章

  1. 李开复对话彭特兰:AI不是单打独斗,应避免AI冷战
  2. UVa12532 - Interval Product(线段树)
  3. php中的单引号、双引号和转义字符
  4. js rsa验签_js rsa sign使用笔记(加密,解密,签名,验签)
  5. elasticsearch狂神说笔记_神级学习笔记!别再说不会Elasticsearch了,这位架构师都整理好了...
  6. 实现 SSH 无密码登录 、 ssh 常用命令
  7. Google提供的超强圆角效果
  8. 免费正版 Win 10/8/7操作系统虚拟机镜像下载
  9. 高等数学积分公式大全
  10. 城八区和通州区限价房申请5月16日开始受理
  11. 【CPRI】(1)CPRI基本概念和相关术语
  12. mysql表必须有主键吗_SQL中的每一张表都必须设有主键吗
  13. MAC版Sublime Text 解决 Unable to download XXX 问题
  14. iOS 打开本地或下载excel文件
  15. office使用技巧大全
  16. [前端框架]-VUE(上篇)
  17. python————简易的编程题目
  18. 使用IO口检测电源电压的转换逻辑
  19. Wio Terminal 有什么好玩的?
  20. 艾默生701PGNKF电池的回收与利用

热门文章

  1. #3771. Triple 生成函数 + FFT + 容斥
  2. P1377 [TJOI2011]树的序 笛卡尔树优化建树
  3. P2567 [SCOI2010]幸运数字
  4. 牛客题霸 [括号生成] C++题解/答案
  5. [ZJOI2007] 时态同步(拓扑序)
  6. P3642 [APIO2016]烟火表演(左偏树、函数)
  7. YbtOJ#732-斐波那契【特征方程,LCT】
  8. P6348-[PA2011]Journeys【线段树优化建图,最短路】
  9. P3295-[SCOI2016]萌萌哒【ST表,并查集】
  10. 【KMP】周期长度和(luogu 3435/ybtoj KMP-3)