-
회원가입, 로그인, 게시판 백엔드 실습( 게시판 글쓰기 )Spring 2023. 4. 5. 15:35
게시판 글쓰기
: 게시글을 데이터베이스에 추가할 수 있는 기능을 만들 것이다.
이 때 로그인한 아이디에 대한 정보를 게시글에 남긴다.
1. Controller
// 게시판 글쓰기 데이터 저장 @RequestMapping(value="/write", method = RequestMethod.POST) public String writePost(BoardVO board) { System.out.println(board); bs.write(board); return "redirect:/board/list"; }
- BoardVO 객체에 게시판에 대한 정보를 담아서 데이터베이스에 저장할 것이다.
public class BoardVO { private int board_no; private String title; private String contents; private String id; private String created_time; private String updated_time; private int likes; private int counts; 필드에 대한 getter, setter }
2. Service, ServiceImpl
public interface BoardService { // 게시판 글쓰기 public void write(BoardVO board); }
@Service public class BoardServiceImpl implements BoardService{ @Autowired BoardMapper bm; // 글쓰기 public void write(BoardVO board) { bm.write(board); } }
3. Mapper , Mapper.xml
public interface BoardMapper { // 글쓰기 public void write(BoardVO board); }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="hjm.portfolio.mapper.BoardMapper"> <insert id="write"> <selectKey keyProperty="board_no" order="BEFORE" resultType="int"> select max(board_no)+1 board_no from port_board </selectKey> insert into port_board(board_no, title, contents, id) values(#{board_no}, #{title}, #{contents}, #{id}) </insert> </mapper>
- selectKey 태그를 이용해 board_no 라는 변수에 현재 존재하는 게시글 중 가장 높은 board_no에 1을 더한 값을 저장한다. ( 따라서 새로운 게시글을 작성하면 board_no가 가장 높은 값으로 저장된다 )
4. jsp
<body> <% String id = (String)session.getAttribute("login"); %> <h1>글쓰기</h1> <form action="write" method="post"> 제목 <input type="text" name="title"><br> <textarea rows="40" cols="40" name="contents"></textarea> <input type="hidden" name="id" value=<%= id %>> <input type="submit" value="글쓰기"> </form> </body>
- form 태그에 현재 session에 저장돼있는 id 값을 함께 제출하기 위해 (String)session.getAttribute("login") 을 사용했다.
** textarea에 기입한 내용이 데이터베이스에 저장될 때 개행이 저장되지 않는다. 이 해결 방법을 찾아보자
'Spring' 카테고리의 다른 글
Spring의 동기식 / 비동기식 (0) 2023.04.06 회원가입, 로그인, 게시판 백엔드 실습( 게시판 디테일 ) (0) 2023.04.05 회원가입, 로그인, 게시판 백엔드 실습( 게시판 리스트 ) (0) 2023.04.05 회원가입, 로그인, 게시판 백엔드 실습( login 기능 구현 ) (0) 2023.04.04 회원가입, 로그인, 게시판 백엔드 실습( login 화면 ) (0) 2023.04.04