非Ajax的数据传递
# 非Ajax的控制器与视图层数据传递
# 1、非Ajax的控制器传递数据给视图层
数据交互:就是Controller
—View
之间的数据交互
控制器:Controller
如何传递数据给View
视图:View(jsp,html,vue… )
如何传递数据给 控制器Controller
# 1、方案1:原始request.setAttribute存储对象
@GetMapping("blog")
public String getBlogList(HttpServletRequest request) {
int page = 1;
int pageSize = 10;
request.setAttribute("blogList",blogService.getBlogList(page,pageSize));
return "blog";
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 2、方案2:使用并返回一个ModelAndView对象
@GetMapping("blog1")
public ModelAndView getBlogList1() {
int page = 1;
int pageSize = 10;
PageData<BlogEntity> blogList = blogService.getBlogList(page, pageSize);
ModelAndView modelAndView = new ModelAndView("blog", "blogList1", blogList);
return modelAndView;
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 3、方案3:返回一个字符串,view视图名,数据存放在参数Model中
@GetMapping("blog2")
public String getBlogList2(Model model) {
int page = 1;
int pageSize = 10;
PageData<BlogEntity> blogList = blogService.getBlogList(page, pageSize);
//model.addAttribute(blogList);
model.addAttribute("blogList2", blogList);
return "blog";
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 2、非Ajax的视图层传递数据给控制器
数据交互:就是Controller
—View
之间的数据交互
控制器:Controller
如何传递数据给View
视图:View(jsp,html,vue… )
如何传递数据给 控制器Controller
# 1、表单提交,控制器方法中直接参数位置写表单元素的name,或者直接传对象
【添加示例】:
@PostMapping("addblog")
public String addBlogList(String title, String context) {
// 先研究参数传递,一起的玩法?怎么获取请求数据?
// 直接将参数名写在参数的位置,要和表单的元素的name相同
System.out.println("title:" + title + "context:" + context);
return "blog";
}
1
2
3
4
5
6
7
2
3
4
5
6
7
<form action="article" method="post">
<input type="text" name="title"><br/>
<textarea name="content"></textarea><br/>
<input type="submit" valu="添加">
</form>
1
2
3
4
5
2
3
4
5
【删除示例】:
@GetMapping("articledel")
public String delArticle(int id) {
// 先研究参数传递,1 =>以前的玩法,怎么获取请求数据? request.getParameter
// 2=>直接将参数名写在参数位置,要和表单元素的name相同
//3 直接将对象作为参数
System.out.println("id:" + id);
return "articles2";
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<a href="articledel?id=1">删除</a>
1
# 2、表单提交,直接将对象名作为参数
【添加示例】:
@PostMapping("addblog")
public String addBlogList(BlogEntity blogEntity) {
// 先研究参数传递,一起的玩法?怎么获取请求数据?
// 直接将直接将对象名作为参数写在参数的位置,要和表单的元素的name相同
System.out.println("blogEntity:" + blogEntity);
return "blog";
}
1
2
3
4
5
6
7
2
3
4
5
6
7
<form action="article2" method="post">
<input type="text" name="title"><br/>
<textarea name="content"></textarea><br/>
<input type="submit" valu="添加">
</form>
1
2
3
4
5
2
3
4
5
编辑 (opens new window)