第11期学生住宿管理系统+程序设计文档

🍅 作者简介:优快云特邀作者✌、博客专家✌、java领域优质创作者💪

🍅关注公众号【猿码仓库】 简历模板、学习资料、面试题库等都给你💪

实现了一套学生住宿管理系统。此管理系统被设计成一个采用B/S架构的Web应用程序,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。此系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的人机交互、信息修改功能,能够快速的查询到所需要的学生住宿信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

{

    @Override
    public boolean supports(MethodParameter returnType, @NonNull Class<? extends HttpMessageConverter<?>> aClass) {
        // 如果接口返回的类型已经是LayuiResult,则无需转换
        val returnTypeName = returnType.getGenericParameterType().getTypeName();
        val layuiResultTypeName = LayuiResult.class.getTypeName();
        return !returnTypeName.startsWith(layuiResultTypeName); // 前者包含泛型信息,后者不包含,所以用startsWith而不是equals
    }

    // String =>beforeBodyWrite(包装成LayuiResult,手动转json) => String;
    // 其它 =>beforeBodyWrite(包装成LayuiResult) => LayuiResult => springMVC自动转json => String;
    @Override
    public Object beforeBodyWrite(Object data, @NonNull MethodParameter returnType, @NonNull MediaType mediaType, @NonNull Class<? extends HttpMessageConverter<?>> aClass, @NonNull ServerHttpRequest serverHttpRequest, @NonNull ServerHttpResponse serverHttpResponse) {
        // 如果controller层中返回的类型是String,那么springMVC在选择处理MessageConverter时会选择StringMessageConverter。
        // 问题在于StringMessageConverter只接受String类型,不能处理包装后的LayuiResult类型,所以要转成json字符串作为返回值
        if (data instanceof String) {
            // String类型
            val objectMapper = new ObjectMapper();
            try {
                // 将数据包装在LayuiResult里后,再转换为json字符串响应给前端
                val result = new LayuiResult<>(LayuiResult.ResultCode.SUCCESS, null, Collections.singletonList((String) data));
                return objectMapper.writeValueAsString(result);
            } catch (JsonProcessingException e) {
                throw new ApiException();
            }
        } else if (data instanceof Page) {
            // Page类型
            return new LayuiResult<>((Page<?>) data);
        } else {
            // 其它的对象类型
            List<Object> objectList;
            if (data == null) {
                objectList = Collections.emptyList();
            } else {
                objectList = Collections.singletonList(data);
            }
            return new LayuiResult<>(LayuiResult.ResultCode.SUCCESS, null, objectList);
        }
    }
}

微信搜:猿码仓库

获取源码:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号 获取联系方式👇🏻👇🏻👇🏻

猿码仓库

打卡 文章 更新 1 / 365天

精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻

毕业设计精品实战案例《365套》

web期末大作业网页实战案例《365套》

猿码仓库

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿码仓库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值