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

利用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();

}

}

858e07f0984d69417aae77463ebbe8c5.png

补充知识:关于分页时怎么实现当本页面最后一条记录被删除时,自动向上一个页面跳转的实现(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如何实现在删除信息后刷新页面功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

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

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

相关文章

Java中的synthetic

转载自 Java中的synthetic 有synthetic标记的field和method是class内部使用的&#xff0c;正常的源代码里不会出现synthetic field。小颖编译工具用的就是jad.所有反编译工具都不能保证完全正确地反编译class。所以你不能要求太多。 下面我给大家介绍一下synthetic 下面的例子…

java凯撒密码_JAVA凯撒密码 选择问题

以下是加密和解密的程序&#xff1a;加密&#xff1a;importjava.io.*;classJiami26{publicstaticvoidmain(Stringargs[])throwsIOException{charb[];//存放密文BufferedReaderbr2newBufferedReader(newIn...以下是加密和解密的程序&#xff1a;加密&#xff1a;import java.io…

synthetic Java合成类型

转载自 synthetic Java合成类型Synthetic看Class源码的时候&#xff0c;看到有个关键字Synthetic以及isSynthetic()方法&#xff0c;遂有兴趣查阅了一番。   一开始以为&#xff0c;就是复合类型&#xff08;引用类型&#xff09;&#xff0c;也就是非基本类型&#xff0c;…

Java 反射机制深入研究

转载自 Java 反射机制深入研究Java反射机制深入研究Java 反射是Java语言的一个很重要的特征&#xff0c;它使得Java具体了“动态性”。在Java运行时环境中&#xff0c;对于任意一个类&#xff0c;能否知道这个类有哪些属性和方法&#xff1f;对于任意一个对象&#xff0c;能否…

RAML用户应遵循的C#与Web API代码生成模式

在过去几年间&#xff0c;REST规范的各种语言正在逐渐流行起来&#xff0c;例如RAML、Swagger以及API Blueprint。但这些语言的主要范畴在于客户端工具&#xff0c;主要用于生成JavaScript或TypeScript文件、模拟对象&#xff08;mock&#xff09;&#xff0c;以及对应的客户端…

wxpython使用folium_wxPython实现文本框基础组件

本文实例为大家分享了wxPython实现文本框的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下#-*- coding:utf-8 -*-"""#############################################StaticText 参数说明 --即 labelparent&#xff1a; -- 父窗口部件。id&#xff1a;…

教你实践ASP.NET Core Authorization(免看文档教程)

准备 创建一个名为AuthorizationForoNetCore的&#xff08;web&#xff09;解决方案,选择Empty模板添加相关nuget包引用Microsoft.AspNetCore.Mvc&#xff08;选择最新版本&#xff09;编辑Startup.cs文件&#xff0c;添加mvcservice并进行默认路由配置 添加Controllers文件夹&…

Class类中的getEnclosingXX、getDeclaredXX

转载自 Class类中的getEnclosingXX、getDeclaredXX一、getEnclosingXX getEnclosingClass():该类是在那个类中定义的&#xff0c; 比如直接定义的内部类或匿名内部类 getEnclosingConstructor()&#xff1a;该类是在哪个构造函数中定义的&#xff0c;比如构造方法中定义的匿名…

二级MYSQL的语法整理_MySQL语法整理

一、基本语句(大写的代表固定语句&#xff0c;小写的代表自己命名部分)1. 数据库部分增&#xff1a;CREATE DATABASE database_name;删&#xff1a;DROP DATEBASE database_name;用&#xff1a;USE database_name;2. 数据表部分增&#xff1a;CREATE TABLE table_name ( field1…

java反射的field.get(null)

转载自 java反射的field.get(null) 在java的反射中,通过字段获取对象,是通过 public Object get(Object obj) 字段不是静态字段的话,要传入反射类的对象.如果传null是会报 java.lang.NullPointerException 但是如果字段是静态字段的话,传入任何对象都是可以的,包括null 下面是…

JFlow CCFlow工作流引擎北京培训邀请函

各位jFlow, CCFlow 爱好者: 驰骋工作流程引擎是国内开源很成功的一款工作流程引擎&#xff0c;广泛应用于大型集团企业、机关事业单位、部队军区、保密军工行业。设计精巧、功能强大、极高的可配置性、概念名词通俗易懂、成长于中国生产制造、管理审批特有的环境下&#xff0c;…

java按列读取数据再存储_Java指定行读写数据

/*** 根据指定行写数据** param lineNumber 要存的行数* param data 要存储的数据*/public static void setAppointedLineNumber(int lineNumber, String data) throws IOException {Path path Paths.get(configuration);List lines Files.readAllLines(path, StandardCharse…

Java通过Class的对象来获取泛型的class示例

转载自 Java通过Class的对象来获取泛型的class示例 在使用spring的JdbcTemplate实现DAO的时候&#xff0c;经常会用到一个类ParameterizedBeanPropertyRowMapper。它的静态方法newInstance()接受一个Class类型的参数&#xff0c;用于将ResultSet中的属性映射到传入的这个Class…

微软觊觎LinkedIn算法

分析师说&#xff0c;LinkedIn算法的价值远超260亿美元买到的数据。 微软在昨天宣布了即将以262亿美元的价格收购企业社交网络LinkedIn。一名分析师称&#xff0c;这起并购由微软对算法的渴望而起。 “微软对LinkedIn的兴趣有两部分”&#xff0c;Gartner研究总监Jenny Sussin在…

阿卡姆疯人院需要java吗_蝙蝠侠阿甘疯人院 这个报错 怎么解决 哪位大神知道...

有关调用实时(JIT)调试而不是此对话框的详细信息&#xff0c;请参见此消息的结尾。************** 异常文本 **************System.Runtime.InteropServices.SEHException: 外部组件发生异常。在 BmLauncherLib.PhysXSDK.{ctor}(PhysXSDK* )在 BmLauncherUtils.PhysXSDK..ctor(…

Java5泛型的用法,T.class的获取和为擦拭法站台

转载自 Java5泛型的用法&#xff0c;T.class的获取和为擦拭法站台Java 5的泛型语法已经有太多书讲了&#xff0c;这里不再打字贴书。GP一定有用&#xff0c;不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚&#xff0c;GP和Ruby式的动态OO语言属于不同的意识形态&…

asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存

目录 Redis 介绍asp.net core Session 介绍Redis & Session 实例讲解Session的使用使用 Protobuf 给 Session添加扩展方法 Redis 介绍 下面是Redis官网的介绍&#xff1a; Redis is an open source (BSD licensed), in-memory data structure store, used as database, cac…

java后台 flex前台例子_flex+blazeds+java后台消息推送(简单示例)

现在有个问题需要大家思考一下&#xff0c;有个已经上线了的项目&#xff0c;有好好几千甚至上万的客户在使用了。现在项目开发商想发布一个通知。在今天下午6点需要重新启动服务器&#xff0c;想让在线的人在在预定的时间内都收到消息&#xff0c;让大家做好相应的准备&#x…

Java和Android中的注解

转载自 Java和Android中的注解1.引言 从JDK1.5开始&#xff0c;引入了注解类Annotation&#xff0c;Annotation其实是一种接口&#xff0c;可以作用于类、方法、属性等等 &#xff0c;它可以通过反射机制来访问annotation信息&#xff0c;获取所加上注解信息&#xff0c;做相应…

第二章 指南(4.3)添加 View

原文&#xff1a;Adding a view作者&#xff1a;Rick Anderson翻译&#xff1a;魏美娟(初见)校对&#xff1a;赵亮(悲梦)、高嵩(Jack)、娄宇(Lyrics)、许登洋(Seay)、姚阿勇&#xff08;Dr.Yao&#xff09; 本节将修改 HelloWorldController 类&#xff0c;把使用 Razor 视图模…