スプリングスタート(Spring Boot)掲示板


ばね起動掲示板
今日掲示板を整理するとき.
機能フローから使用方法まで、
一つ一つ丁寧に掘るつもりです.
復習の感覚で最初から行う
結構時間がかかりますが、丁寧に書いておきます・・・
Save(文章を書く)
controller
// 세이브 주소로 요청하는 매서드
@Getmapping("save")
public String saveForm(){
return "board/save";
}
// 세이브(글쓰기) 를 진행하는 메서드
@Postmapping("save")
public String save(@ModelAttribute BoardSaveDTO boardSaveDTO){
        Long boardId = bs.save(boardSaveDTO);
        return "redirect:/board/";
    }
ModelAttributeは、オブジェクトを自動的に作成するツールです.
上記のコードを読み込むと、saveFormはsaveアドレスに送信されます.
ではsaveには、作成した値をサービスに返す役割があります.
ModelAttribute,BoardSaveDTOクラスのBoardSaveDTOを使用
使用するオブジェクトを作成し、HTTPの値に自動的にバインドします.
すなわち,Longと宣言されたBoard Id内bsである.(Board SaveDTO)の値を保存し、自動ジャンプの値(作成者、タイトル、パスワードなど)を変数にバインドします.
service
    @Override
    public Long save(BoardSaveDTO boardSaveDTO) {
        BoardEntity boardEntity = BoardEntity.toSaveEntity(boardSaveDTO);
        return br.save(boardEntity).getId();
    }
このメソッドは、DTO値をリポジトリに転送する前に、DTO値の一部を変更する必要があります.
BoardEntityというクラスのBoardEntityオブジェクトを作成します.
BoardEntity.インストールtoSaveEntity(Board SaveDTO)
アーカイブに送り返す.
  • BoardSaveDTO
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class BoardSaveDTO {
       private String boardWriter;
       private String boardPassword;
       private String boardTitle;
       private String boardContents;
       private LocalDateTime boardDate;
    }
  • BoardSaveDTO - 글 작성 시 필요한 값들을 필드로 선언한다..
  • 記事詳細照会
  • controller
        @GetMapping("/")
        public String findAll(Model model){
            List<BoardDetailDTO> boardList = bs.findAll();
            model.addAttribute("boardList",boardList);
            return "board/findAll";
        }
    値全体を出力する必要があるため、情報を取得します(Get)
    モデルタイプのオブジェクトを宣言し、パラメータとして受け入れます.
    List<BoardDetailDTO>
    boardList=bsを使用します.findAll(); Board Listに値を含め、addAttributeを使用してモデルに値を含めます.
    戻り値は当然findAll~~~
    ServiceImpl
        @Override
      public List<BoardDetailDTO> findAll() {
          List<BoardEntity> boardEntityList = br.findAll();
          List<BoardDetailDTO> boardList = new ArrayList<>();
          for (BoardEntity boardEntity : boardEntityList){
              boardList.add(BoardDetailDTO.toBoardDetailDTO(boardEntity));
          }
          return boardList;
      }
    List<BoardDetailDTO>
    これは持ってきたものだから.
    br.findAll(); リストとして発表されたBoard Entity Listに!
    リストと宣言したBoardリストに価格を書いてから返事すべき...
    全部印刷するので、値を全部印刷します...
    各ドアを使用
    for (BoardEntity boardEntity : boardEntityList){
                boardList.add(BoardDetailDTO.toBoardDetailDTO(boardEntity));
            }
    BoardDetailDTOの値をBoard Entityとし、
    Boardリストに入れて返信したら~~終了
    もちろん、DTOでtoBoardDetailDTOを宣言しなければ値を取得できません.
    BoardDetailDTO
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class BoardDetailDTO {
       private Long boardId;
       private String boardWriter;
       private String boardPassword;
       private String boardTitle;
       private String boardContents;
       private LocalDateTime boardTime;
    public static BoardDetailDTO toBoardDetailDTO(BoardEntity boardEntity){
           BoardDetailDTO boardDetailDTO = new BoardDetailDTO();
           boardDetailDTO.setBoardId(boardEntity.getId());
           boardDetailDTO.setBoardWriter(boardEntity.getBoardWriter());
           boardDetailDTO.setBoardPassword(boardEntity.getBoardPassword());
           boardDetailDTO.setBoardTitle(boardEntity.getBoardTitle());
           boardDetailDTO.setBoardContents(boardEntity.getBoardContents());));
           if(boardEntity.getUpdateTime()==null){
               boardDetailDTO.setBoardTime(boardEntity.getCreateTime());
           }else {
               boardDetailDTO.setBoardTime(boardEntity.getUpdateTime());
           }
       }
    }
    長いですが…どうせお金を全部入れるから、必死に使うんだから・・・