-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPagingArticleController.java
118 lines (101 loc) · 3.96 KB
/
PagingArticleController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.spring.article.controller;
import com.spring.article.dto.Article;
import com.spring.article.service.ArticleService;
import com.spring.commons.paging.Criteria;
import com.spring.commons.paging.PageMaker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.inject.Inject;
@Controller
@RequestMapping("/article")
public class PagingArticleController {
private static final Logger logger = LoggerFactory.getLogger(PagingArticleController.class);
private final ArticleService articleService;
@Inject
public PagingArticleController(ArticleService articleService) {
this.articleService = articleService;
}
/**
* 페이징 처리: 전체 목록
*
* @param model
* @param criteria
* @return
*/
@RequestMapping(value = "/listPaging", method = RequestMethod.GET)
public String listPaging(Model model, Criteria criteria) {
logger.info("listPaging ...");
PageMaker pageMaker = new PageMaker();
pageMaker.setCriteria(criteria);
pageMaker.setTotalCount(articleService.countArticles(criteria));
model.addAttribute("articles", articleService.findAllArticlePaging(criteria));
model.addAttribute("pageMaker", pageMaker);
return "article/paging/list_paging";
}
/**
* 페이징 처리: 게시글 조회
*
* @param articleNo
* @param criteria
* @param model
* @return
*/
@RequestMapping(value = "/readPaging", method = RequestMethod.GET)
public String readPaging(@RequestParam("articleNo") int articleNo,
@ModelAttribute("criteria") Criteria criteria,
Model model) {
model.addAttribute("article", articleService.findByArticleNo(articleNo));
return "article/paging/read_paging";
}
/**
* 페이징 처리: 게시글 수정 GET
* @param articleNo
* @param criteria
* @param model
* @return
*/
@RequestMapping(value = "/modifyPaging", method = RequestMethod.GET)
public String modifyGetPaging(@RequestParam("articleNo") int articleNo,
@ModelAttribute("criteria") Criteria criteria,
Model model) {
logger.info("modifyGetPaging ...");
model.addAttribute("article", articleService.findByArticleNo(articleNo));
return "article/paging/modify_paging";
}
/**
* 페이징 처리: 게시글 수정 POST
* @param article
* @param criteria
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/modifyPaging", method = RequestMethod.POST)
public String modifyPostPaging(Article article,
Criteria criteria,
RedirectAttributes redirectAttributes) {
logger.info("modifyPostPaging ...");
articleService.updateArticle(article);
redirectAttributes.addAttribute("page", criteria.getPage());
redirectAttributes.addAttribute("perPageNum", criteria.getPerPageNum());
redirectAttributes.addFlashAttribute("msg", "modifyPagingSuccess");
return "redirect:listPaging";
}
@RequestMapping(value = "/deletePaging", method = RequestMethod.POST)
public String deletePaging(@RequestParam("articleNo") int articleNo,
Criteria criteria,
RedirectAttributes redirectAttributes) {
logger.info("removePaging ...");
articleService.deleteArticle(articleNo);
redirectAttributes.addAttribute("page", criteria.getPage());
redirectAttributes.addAttribute("perPageNum", criteria.getPerPageNum());
redirectAttributes.addFlashAttribute("msg", "deletePagingSuccess");
return "redirect:listPaging";
}
}