summaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/blog/web/controllers/ArticleController.java
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-11 21:08:42 -0400
committerrealtradam <[email protected]>2024-07-11 21:08:42 -0400
commit40075162def7d0a4ce9d795f4cfe83264fac50b4 (patch)
tree9048db522f46519ab19554434606897f974db488 /src/main/java/com/blog/web/controllers/ArticleController.java
parent86cb044572b9e07d4b63871b9a3f4b384bed4caa (diff)
downloadspring-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.java24
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";