이미지 없이 글을 작성하고 등록하기를 해보려고 한다.
<div class="panel-heading">게시글 작성하기</div>
<div class="panel-body">
<form method="post" action="${contextPath}/board/writeSave">
<div class="form-group">
<label>작성자</label>
<input class="form-control" name="writer" value="${successUser }" readonly>
</div>
<div class="form-group">
<label>제목</label>
<input class="form-control" name="title">
</div>
<div class="form-group">
<label>내용</label>
<textarea class="form-control" rows="3" name="content"></textarea>
</div>
<input type="submit" class="btn btn-default" value="글 등록하기" style="margin-top: 50px;">
<input type="button" class="btn btn-default" value="목록보기"
onClick="location.href='${contextPath}/board/list'" style="margin-top: 50px;">
</form>
</div>
</div>
name
에 dto값을 넣어 넘겨주고 로그인 세션 값을 value
에 적어 넘긴다.readonly
으로 한다.name
에 넣어 넘겨준다.form
의 데이터는 보여지면 안되기 때문에 post
방식으로 넘기며 이동할 경로를 적어준다.input type
을 submit
으로 데이터를 넘긴다.@PostMapping("writeSave")
public void writeSave(MultipartHttpServletRequest multi, HttpServletResponse response,
HttpServletRequest request) throws IOException{
System.out.println("read:" +multi.getParameter("writer"));
System.out.println("저장하기 실행");
String message =bs.writeSave(multi, request);
PrintWriter out= null;
response.setContentType("text/html; charset = utf-8");
out = response.getWriter();
out.println(message);
}
jsp - form
에서 post방식
으로 보낼 페이지 경로를 연결 역할을 하는 컨트롤러에 적어준다.public String writeSave(MultipartHttpServletRequest multi, HttpServletRequest request);
@Service
public class boardServiceImpl implements boardService {
@Autowired BoardMapper mapper;
public String writeSave(MultipartHttpServletRequest multi, HttpServletRequest request) {
boardDTO dto = new boardDTO();
dto.setTitle( multi.getParameter("title") );
dto.setContent( multi.getParameter("content") );
dto.setWriter(multi.getParameter("writer"));
try {
mapper.writeSave(dto);
} catch (Exception e) {
e.printStackTrace();
}
}
boardDTO dto = new boardDTO();
: 사용자가 넘긴 multi , request를 dto
에 저장한다.try/catch
를 사용해 전부 예외처리해주고 데이터 값을 mapper로 넘긴다.public interface BoardMapper {
public int writeSave(boardDTO dto);
}
<insert id="writeSave">
insert into
talk_board(write_num,title,writer,content)
values(talk_board_seq.nextval,#{title},#{writer},
#{content})
</insert>
insert
구문을 사용해서 쿼리문을 작성해야 한다.values
에는 #{}
안에 sql 컬럼명을 넣어준다.