diff options
| author | realtradam <[email protected]> | 2024-07-11 21:08:42 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2024-07-11 21:08:42 -0400 |
| commit | 40075162def7d0a4ce9d795f4cfe83264fac50b4 (patch) | |
| tree | 9048db522f46519ab19554434606897f974db488 /src/main/java/com/blog/web/controllers/ArticleController.java | |
| parent | 86cb044572b9e07d4b63871b9a3f4b384bed4caa (diff) | |
| download | spring-blog-40075162def7d0a4ce9d795f4cfe83264fac50b4.tar.gz spring-blog-40075162def7d0a4ce9d795f4cfe83264fac50b4.zip | |
validate new and edited article fields
Diffstat (limited to 'src/main/java/com/blog/web/controllers/ArticleController.java')
| -rw-r--r-- | src/main/java/com/blog/web/controllers/ArticleController.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/main/java/com/blog/web/controllers/ArticleController.java b/src/main/java/com/blog/web/controllers/ArticleController.java index 2b32070..0e58877 100644 --- a/src/main/java/com/blog/web/controllers/ArticleController.java +++ b/src/main/java/com/blog/web/controllers/ArticleController.java @@ -3,13 +3,16 @@ package com.blog.web.controllers; import com.blog.web.dto.ArticleDto; import com.blog.web.models.Article; import com.blog.web.services.ArticleService; +import jakarta.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import java.time.LocalDateTime; import java.util.List; @Controller @@ -35,20 +38,31 @@ public class ArticleController { } @PostMapping("/articles/new") - public String saveArticle(@ModelAttribute("article") Article article) { - articleService.saveArticle(article); + public String saveArticle(@Valid @ModelAttribute("article") ArticleDto articleDto, + BindingResult result, + Model model) { + if(result.hasErrors()) { + model.addAttribute("article", articleDto); + return "articles/new"; + } + articleService.saveArticle(articleDto); return "redirect:/articles"; } @GetMapping("/articles/edit/{articleId}") public String editArticleForm(@PathVariable("articleId") long articleId, Model model) { - ArticleDto article = articleService.findArticleById(articleId); - model.addAttribute("article", article); + ArticleDto articleDto = articleService.findArticleById(articleId); + model.addAttribute("article", articleDto); return "articles/edit"; } @PostMapping("/articles/edit/{articleId}") - public String updateArticle(@PathVariable("articleId") Long articleId, @ModelAttribute("article") ArticleDto article) { + public String updateArticle(@PathVariable("articleId") Long articleId, + @Valid @ModelAttribute("article") ArticleDto article, + BindingResult result) { + if(result.hasErrors()) { + return "articles/edit"; + } article.setId(articleId); articleService.updateArticle(article); return "redirect:/articles"; |
