数据的添加的流程就是先把数据显示出来然后再将数据进行修改。
这里定义的是一个message类 比较简单 属性只有id 和 info。
实体类的定义如下
package com.text.demo11;
/**
* Created by 周子淏 on 2018/4/8 15:39
*/
public class Message {
private Integer id;
private String info;
public Message(Integer id, String info) {
this.id = id;
this.info = info;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Message{" +
"id=" + id +
", info='" + info + '\'' +
'}';
}
}
基本就是和所有的实体类一样。
想要达到的效果是
界面有一个按钮 点击该按钮 就会跳转到添加的界面
对信息进行添加。
<div>
<a th:href="@{/add}"> <input type="submit" value="添加" ></a>
</div>
这个是按钮的实现
- 这里要说一下url相关的
href 后边的路径 这个写法就是省略了项目名 add是放在根目录下的所以直接/add 如果再根目录下加了文件夹 就在前边加上文件夹的名字
就可以直接跳转了。
然后是controller的实现。
在能确认请求类型的情况下
要把post和get给区别开
大哥的讲就是不能让程序迷糊。
然后get请求中将新建一个空的Message
然后把它添加到model中。
@GetMapping("/add")
public String add(Model model) {
model.addAttribute("message", new Message(4,"对对"));
return "add";
}
然后在post请求中讲数据在控制台直接输出。
@PostMapping("/add")
public String add(Message message) {
System.out.println("新增数据为:" + message);
return "redirect:demo";
}
- reditect是可以省略的 但是在进行更新后 最好是添加上。
然后在前台需要把数据通过post传到后台
具体代码如下
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>添加信息</title>
</head>
<body>
<div>
<form action="#" th:action="@{/add}" th:object="${message}" method="post">
<input type="text" th:field="*{info}" />
<input type="submit" value="确认更新"/>
</form>
</div>
</body>
</html>
- 这里边的action有两个 为了是在其他机器使用的时候 不会有影响。
object 获取message后
在input的时候 直接用
网友评论