// 답변하기 화면
@RequestMapping(value="boardReply.aws")
public String boardReply(@RequestParam("bidx") int bidx,Model model){
// 게시물 내용을 조회하는 메서드
BoardVo bv = boardService.boardSelectOne(bidx);
model.addAttribute("bv", bv);
String path="WEB-INF/board/boardReply";
return path;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.myaws.myapp.domain.BoardVo" %>
<% BoardVo bv = (BoardVo)request.getAttribute("bv");%>


// 글 답변하기 기능
@RequestMapping(value= "boardReplyAction.aws")
public String boardReplyAction(
BoardVo bv, // 게시글 정보를 담고 있는 BoardVo 객체를 매개변수로 받음
@RequestParam("attachfile") MultipartFile attachfile, // 업로드된 파일을 받기 위한 MultipartFile 객체
HttpServletRequest request,
RedirectAttributes rttr
) throws Exception { // 윗단에 보고를 하는것
int value = 0;
MultipartFile file = attachfile; //저장된 파일 이름 꺼내기
String uploadedFileName=""; // 파일이 업로드된 후 저장된 파일명을 저장할 변수
if(! file.getOriginalFilename().equals("")) { // 해당 파일이 존재한다면
// 파일을 서버에 저장하고 저장된 파일 이름을 반환받음
uploadedFileName = UploadFileUtiles.uploadFile(uploadPath, file.getOriginalFilename(), file.getBytes());
}
String midx = request.getSession().getAttribute("midx").toString();
int midx_int = Integer.parseInt(midx);
String ip = getUserIp(request);
bv.setUploadedFilename(uploadedFileName); // vo에 담아서 가져가기
bv.setMidx(midx_int);
bv.setIp(ip);
//수정 처리
value = boardService.boardReply(bv); // 서비스에서 만든 메서드 호출하기
int maxbidx = 0;
String path="";
if (maxbidx != 0) { //성공 했을 경우
path = "redirect:/board/boardContents.aws?bidx="+ maxbidx;
} else {
rttr.addFlashAttribute("msg", "답변이 등록되지 않았습니다.");
path = "redirect:/board/boardReply.aws?bidx=" + bv.getBidx();
}
return path;
}
public int boardReply(BoardVo bv);
6. 서비스에 메서드 만들기
@Transactional // 두개니까 하나로 묶기위한 트랜잭션
@Override
public int boardReply(BoardVo bv) {
// 업데이트를 먼저 한 번 하고, 입력하기를 만들어야 한다.
// 그래서 메서드 두 개를 만들어야 한다.
int value = bm.boardReplyUpdate(bv);
int value2 = bm.boardReplyInsert(bv); // 두개를 하나로 담아서 넘길거에용
int maxBidx = bv.getBidx();
return maxBidx;
}
public int boardReplyUpdate(BoardVo bv);
public int boardReplyInsert(BoardVo bv);
<!-- 게시물 답변달기 쿼리 -->
<update id="boardReplyUpdate" parameterType="bv">
update board set depth= depth+1 where originbidx =#{originbidx} and depth > #{depth}
</update>
<!-- 새 답변글을 넣으려는 쿼리 -->
<insert id="boardReplyInsert" parameterType="bv">
insert into board (originbidx,depth,level_,subject,contents,writer,midx,filename,password,ip)
values(#{originbidx},#{depth}+1,#{level_}+1,#{subject},#{contents},#{writer},#{midx},#{uploadedFilename},#{password},#{ip})
</insert>
<!-- 새 답변글을 넣으려는 쿼리 -->
<insert id="boardReplyInsert" parameterType="bv">
<selectKey keyProperty="bidx" resultType="int" order="AFTER">
select max(bidx) as bidx from board
</selectKey>
insert into board (originbidx,depth,level_,subject,contents,writer,midx,filename,password,ip)
values(#{originbidx},#{depth}+1,#{level_}+1,#{subject},#{contents},#{writer},#{midx},#{uploadedFilename},#{password},#{ip})
</insert>

// 글 답변하기 기능
@RequestMapping(value= "boardReplyAction.aws")
public String boardReplyAction(
BoardVo bv, // 게시글 정보를 담고 있는 BoardVo 객체를 매개변수로 받음
@RequestParam("attachfile") MultipartFile attachfile, // 업로드된 파일을 받기 위한 MultipartFile 객체
HttpServletRequest request,
RedirectAttributes rttr
) throws Exception { // 윗단에 보고를 하는것
MultipartFile file = attachfile; //저장된 파일 이름 꺼내기
String uploadedFileName=""; // 파일이 업로드된 후 저장된 파일명을 저장할 변수
if(! file.getOriginalFilename().equals("")) { // 해당 파일이 존재한다면
// 파일을 서버에 저장하고 저장된 파일 이름을 반환받음
uploadedFileName = UploadFileUtiles.uploadFile(uploadPath, file.getOriginalFilename(), file.getBytes());
}
String midx = request.getSession().getAttribute("midx").toString();
int midx_int = Integer.parseInt(midx);
String ip = getUserIp(request);
bv.setUploadedFilename(uploadedFileName); // vo에 담아서 가져가기
bv.setMidx(midx_int);
bv.setIp(ip);
int maxBidx = 0; // 최신 게시물
maxBidx = boardService.boardReply(bv);
String path="";
if (maxBidx != 0) { //성공 했을 경우
path = "redirect:/board/boardContents.aws?bidx="+ maxBidx;
} else {
rttr.addFlashAttribute("msg", "답변이 등록되지 않았습니다.");
path = "redirect:/board/boardReply.aws?bidx=" + bv.getBidx();
}
return path;
}