Joshua게시판(SSR)-9-글쓰기완료(view 까지)

jaegeunsong97·2023년 8월 14일
0

SSR 기반 JoshuaBlog

목록 보기
9/23

깃허브링크

노션링크

  • boardController

글쓰기 완료 휴, main 페이지로 가기

@Controller
@RequiredArgsConstructor
public class BoardController {

     @GetMapping({ "/", "/board" })
     public String main(@AuthenticationPrincipal MyUserDetails myUserDetails) {
          return "board/main";
     }

     @GetMapping("/s/board/saveForm")
     public String saveForm() {
          return "board/saveForm";
     }

     @PostMapping("/s/board/save")
     public String save() {
          return "redirect:/";
     }
}
  • saveForm 추가

  • dto
package coffee.pastry.joshuablog.dto.board;

import coffee.pastry.joshuablog.model.board.Board;
import coffee.pastry.joshuablog.model.user.User;
import lombok.Getter;
import lombok.Setter;

public class BoardRequestDto {

     @Getter
     @Setter
     public static class SaveInDto {

          private String title;
          private String content;

          public Board toEntity(User user) {
               return Board.builder()
                         .user(user)
                         .title(title)
                         .content(content)
                         .thumbnail(null)
                         .build();
          }
     }
}
  • boardServie
package coffee.pastry.joshuablog.service;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import coffee.pastry.joshuablog.dto.board.BoardRequestDto;
import coffee.pastry.joshuablog.model.board.BoardRepository;
import coffee.pastry.joshuablog.model.user.User;
import coffee.pastry.joshuablog.model.user.UserRepository;
import lombok.RequiredArgsConstructor;

@Transactional(readOnly = true)
@Service
@RequiredArgsConstructor
public class BoardService {

     private final BoardRepository boardRepository;
     private final UserRepository userRepository;

     @Transactional
     public void 글쓰기(BoardRequestDto.SaveInDto saveInDto, Long userId) {
          try {
               User userPS = userRepository.findById(userId).orElseThrow(
                         () -> new RuntimeException("유저를 찾을 수 없습니다. "));
               boardRepository.save(saveInDto.toEntity(userPS));
          } catch (Exception e) {
               throw new RuntimeException("글쓰기 실패 : " + e.getMessage());
          }
     }
}
  1. JPA 내장 메소드 -> try-catch
  2. Transaction -> insert, delete, update
  • boardcontroller

업로드중..

  • 검증

업로드중..

업로드중..

업로드중..

흠 ... html 태그가 들어가네.......

만약 그림을 넣으면?

업로드중..

중간에 있는 image:/~~~ 이거를 아래사진 thumbnail로 옮기기

업로드중..

profile
현재 블로그 : https://jasonsong97.tistory.com/

0개의 댓글