发表于: 2019-12-09 23:55:22
1 1270
今天完成的事情:
学习@requestBody和reponseBody区别
@requestBody
作用: 将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
在后端的同一个接收方法里
@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。
@reponseBody的作用
作用:放在方法上,直接返回json格式的数据
就不用我们用tag lib标签生成了
更改了ssm代码 使其返回一个主控制页面
修改了查询所有用户的代码
//查询所有用户
@RequestMapping(method = RequestMethod.GET)
public String findAll(Model model) {
List<Student> list = studentMapper.selectStudent();
System.out.println("查询结果为" + list);
logger.info(list);
model.addAttribute("list",list);
System.out.println("查询成功!!");
return "allstudent";
}
让其返回一个主页面
allstudent. jsp
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
<head>
<title>ALL</title>
</head>
<body>
<table align="center" border="1" cellspacing="0">
<tr>
<td>id</td>
<td>name</td>
<td>qq</td>
<td>type</td>
<td>time</td>
<td>stunum</td>
<td>daily</td>
<td>wish</td>
<td>senior</td>
<td>修改</td>
<td>删除</td>
</tr>
<%--//接收controller给出的model数据--%>
<%--c标签里封装了java循环语法--%>
<c:forEach items ="${list}" var="Student">
<tr>
<td>${Student.id}</td>
<td>${Student.name}</td>
<td>${Student.qq}</td>
<td>${Student.type}</td>
<td>${Student.admission_date}</td>
<td>${Student.graduate_school}</td>
<td>${Student.student_number}</td>
<td>${Student.daily_link}</td>
<td>${Student.wish}</td>
<td><a href="/student/up/${Student.id}">修改</a></td>
<td><a href="/student/delete/${student.id}">删除</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
需要导入
运行
百度后
还需要一个依赖
jsp中c标签的引入
https://blog.csdn.net/zgahlibin/article/details/72589952
再加一个
运行成功
(忽略乱码部分,前面出的错误 已经解决)
点击删除 31
使用了redirect重定向
执行完删除命令 再执行查询所有用户方法
再显示出页面
// 提交删除按钮
@RequestMapping(value = "/delete/{id}" )
public ModelAndView deleteid(@PathVariable(value = "id") long id) {
ModelAndView mv = new ModelAndView();
studentMapper.deleteStudentId(id);
System.out.print("要删除的用户id为:" +id);
logger.info("要删除的用户id为:" +id);
//
// mv.addObject("code", 0);
// mv.addObject("message", "删除成功");
mv.setViewName("redirect:/student");
System.out.print("删除成功");
return mv;
}
点击删除 31不见了
修改 ID为13的内容
// 先查询要修改学员的id, 获取所有信息
@RequestMapping(value = "/up/{id}", method = RequestMethod.GET)
public ModelAndView put(@PathVariable("id") long id) {
ModelAndView mv = new ModelAndView();
Student student = studentMapper.selectStudentId(id);
mv.addObject("s",student);
mv.setViewName("forput");
return mv;
}
for put.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<title>更改</title>
</head>
<body>
<br>请更改学员姓名</br>
</br>
</br>
<form action="/student/update" method = "POST"">
<td>更改学生ID:<input ="text" name="id" value="${s.id}"></td>
<td>需要更改的更改学生姓名: <input = "text" name="name" value ="${s.name}"></td>
<td>需要更改的更改学生qq: <input = "text" name="qq" value ="${s.qq}"></td>
<td>需要更改的更改学生学习类型: <input = "text" name="type" value ="${s.type}"></td>
<td>需要更改的更改学生入学时间<input = "text" name="time" value ="${s.time}"></td>
<td>需要更改的更改学生学号: <input = "text" name="stunum" value ="${s.stunum}"></td>
<td>需要更改的更改学生日报: <input = "text" name="daily" value ="${s.daily}"></td>
<td>需要更改的更改学生愿望: <input = "text" name="wish" value ="${s.wish}"></td>
<td>需要更改的更改学生师兄: <input = "text" name="senior" value ="${s.senior}"></td>
<input type="submit" value="确认">
</form>
</body>
</html>
forput.jsp 页面
(id 可以在表格里 用 type= hidden隐藏)
提交后到下个方法 也用了重定向
//表单提交后跳转到此处
@RequestMapping(value = "/update")
public ModelAndView update(Student student) {
ModelAndView mv = new ModelAndView();
studentMapper.updateStudent(student);
mv.setViewName("redirect:/student");
return mv;
}
}
修改完 就一姓名改成功了
刚开始我以为步骤出错了
试了两遍还是一样 再检查了一遍
然后想起来 我这SQL函数 就是只改姓名
那没事了..
明天计划的事情:
完成表格的编写 添加增加选项
看了看别人写的分页方法
完全看不懂 明天先抄一遍看能不能成功
评论