승리했습니다

chrkb1569·2022년 7월 6일
0

개인 프로젝트

목록 보기
2/28

하하 이기고 돌아왔습니다.

파라미터 처리가 안되는 문제를 해결한 김에, 게시글을 작성한 경우, 사용자에게 자신이 입력한 게시글의 내용을 확인할 수 있는 화면을 띄워주는 폼을 만들었으며, 사용자가 입력한 게시글을 저장해주는 Service까지 구현해주었습니다.

먼저, Controller부터 살펴보도록 하겠습니다.


@Controller// 해당 클래스가 Controller임을 표기
public class CrudController {
    @Autowired
    private CrudService crudService;

    @RequestMapping
    public String write_form() {
        return "writeform";
    }

    @PostMapping("/board/write")
    public String write(board board, Model model) {
        crudService.save(board);
        model.addAttribute("board", board);

        return "writeresultform";
    }

}

일반 localhost:8080으로 들어온다면 writeform을 클라이언트에게 제공하여 게시글을 작성하게 한 뒤, 게시글 작성 폼이 html폼이므로, post방식으로 넘어와서 입력한 데이터를 저장하고, 이를 다시 확인할 수 있게끔 게시글 확인 폼을 출력하도록 설계하였습니다.

아래는 게시글을 작성할 수 있는 writeform이며,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>게시물 작성 폼</title>
</head>
<style>
    form {
        margin: 0 auto;
        width: 400px;
        padding: 1em;
        border: 1px solid #CCC;
        border-radius: 1em;
    }

    .layout input {
        box-sizing: border-box;
        width : 100%
        margin-top : auto;
    }

    .layout textarea {
        width : 400px;
        height : 15em;
        box-sizing: border-box;
    }
</style>
<body>

<div class="layout">
    <form action="/board/write" method="post">
        <p> 게시글 제목 : <input type="text" name="title" value="" placeholder="제목을 입력해주세요"></p>
        <p> user ID : <input type="text" name = "user_id" value ="" placeholder="사용자 ID를 입력해주세요"></p>
        <p> 게시글 :
            <textarea id="content" name="content" placeholder="게시글을 입력해주세요"></textarea>
        </p>
        <button type="submit">작성</button>
    </form>
</div>
</body>
</html>

이를 화면에 출력한 모습은 다음과 같습니다.

게시글 입력 폼에서 제목, ID, 내용을 입력한 뒤에 화면입니다.

다음과 같이 사용자가 입력한 값들이 출력되는 것을 확인할 수 있습니다.

일단은 확인하기 위해서 대충 만들어놨으나, 추후에 다시 손볼 예정입니다.

@Service
public class CrudService {
    @Autowired
    private CrudRepository crudRepository;

    public void save(board board) {
     crudRepository.save(board);
    }

}

Controller에서 활용하였던 자료값을 저장하기 위한 save() 메소드입니다.

아직은 뭐 특별한게 없어서 어렵지는 않았습니다.

그런데 html 파일을 만들어야 한다는 점이 좀 부담이 되긴 합니다..

방학 동안에 프론트 엔드 언어에 대해서 조금 알 필요가 있을 것 같습니다.

오늘은 일단 게시글을 작성하는 로직까지 구현하였으니, 다음에는 작성한 게시글을 목록에 띄우는 로직을 구현해보겠습니다.

0개의 댓글