springboot -crud6 一些细节的处理

该博客围绕员工信息管理展开,介绍了使用SpringMvc处理员工信息的显示、添加、修改和删除操作。包括页面跳转、表单提交、请求参数与对象属性绑定,以及时间格式转化配置等,还提及添加和修改页面共用时的区分处理和表单提交方式的改变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理请求都在@Controller 标注的类中处理

显示所有的员工信息

页面使用超链接跳转:< a th:href="@{/emps}">员工信息< /a >
后台页面的处理: 方法中传入的参数 Map map 和Model model 都回返回页面(在request 域中);可以直接在页面上使用key 值获取对应的值

@GetMapping("/emps")
    public String Emps(Model model){
        Collection<Employee> list = employeedao.getAll();
        //将数据返回页面进行共享数据放在Model  或者是Map  中都是在request 域中的
        model.addAttribute("emps",list);
        //thymeleaf 执行默认拼串
        //classpath:/templates/xxx  .html
        return "emp/list";
    }

员工信息添加

先来到添加页面-----一个表单

表单提交所有的信息:

<form th:action="@{/emp}" method="post">
请求的uri    请求的方式  post 

后台处理/emp 请求:
SpringMvc 会自动的将请求参数和对象的属性进行一一绑定;要求:参数的名字和javabean 中的属性名一致
也就是说页面提交每一个数据的name 属性的值,要和javaBean 中的属性名保持一致,才能进行绑定

    @PostMapping("/emp")
    public  String AddEmp(Employee employee){   对提交的数据自动进行疯转
        employeedao.save(employee);             保存员工
        return "redirect:/emps";                重定向到员工信息展示的页面
    }

在写登陆页面的时候有一个小坑:页面提交时间数据格式多样;/ - .
SpringMvc 将页面提交的值转化为指定的类型,默认是按照2017/03/24 样式转化,如果要修改这种默认转化格式;配置:spring.mvc.date-format=yyyy-mm-dd 就会按照2017-03-24 的格式转化


员工信息修改

添加和修改的页面共用

员工信息的修改也先要将信息回显到页面(表单),然后修改内容将表单提交
修改回显和删除信息都要传递员工的id 才知道修改的是谁的
员工添加和员工信息修改页面是共用的,所以在使用的时候要区分,到底是添加还是修改。修改页面的时候会传入一个emp 对象;回显数据的时候要判断。添加和修改的表单提交方式也不一样也要进行判断

跳转到回显页面: 要携带员工信息的id 在页面获得相关信息显示
<a class="btn btn-sm btn-primary" th:href="@{/emp/}+${emp.id}">编辑</a>
后台的处理:

@GetMapping("/emp/{id}")
    public String toEmp(@PathVariable("id") Integer id, Model model){      获取路径上携带的数据
        Employee employee =employeedao.get(id);
        model.addAttribute("emp",employee);

        Collection<Department> list = departmentdao.getDepartments();
        model.addAttribute("departs",list);
        //添加和修改的页面共用
        return "emp/add";
    }

页面上修改后的信息提交:


页面的回显要传给页面一个mep 对象;在这里添加和修改的页面二合一;所以要进行判断(emp?==null)
设置回显值的时候要判断mep!=null(是修改回显)例如:
th:value="${emp!=null}?${emp.lastName}
当页面上的emp 对象不为空的时候,才会执行他的回显值为  获取的emp.lastname;所有的元素的回显都要这样判断

添加元素和修改元素的表单提交uri 和方式是不一样的:
<form th:action="@{/emp}" method="post">     员工添加的请求和方式
员工修改的请求和方式:
<!--发送put 请求-->
	<!--
	1.springMVC 配置 HiddenHttpMenthodFilter (这在springboot 自动完成)
	2.创建一个post 表单
	3.创建一个put 向,name="_method" 他的值就是我们指定的提交数据的方式
	-->
<input type="hidden" name="_method" th:value="put" th:if="${emp!=null}">    改变提交方式
<!--if 进行判断只有判断成立,这个标签才会生成-->
<input type="hidden" name="id" th:if="${emp!=null}" th:value="${emp.id}" >   
传递员工的id ,修改的时候不会填写和显示id

后台的数据处理:

@PutMapping("/emp")
    public String UpdataEmp(Employee employee){  自动封装信息
        employeedao.save(employee);              调用员工的修改方法
        return "redirect:/emps";
    }

获取路径信息:xxxMapping("/emp/{id}")
public String toEmp(@PathVariable(“id”) Integer id, Model model)

修改表单的提交方式:
< input type=“hidden” name="_method" th:value=“put” th:if="${emp!=null}"> 改变提交方式


元素的删除

点击删除提交员工id 创建一个表单提交要修改表单提交的方式

a 标签的提交方式Get  表单的提交方式是可以修改的
使用js 的方式提交删除的表单:

 <!--删除,删除的员工信息的提交地址每一个是不一样的-->
<button th:attr="dele_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-danger deletebtn" >删除</button>

表单:
 <form id="deleEmp"  th:method="post">
    <input type="hidden" name="_method" th:value="delete">
 </form>
 
 js 触发函数:
 <script>
        <!--使用js 的方式提交表单-->
        $(".deletebtn").click(function () {
            //删除指定员工的信息
            $("#deleEmp").attr("action",$(this).attr("dele_uri")).submit();
            return false;
        });
课程简介:历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值