테이블 더블클릭하면 더블클릭한 no(column)을 찾아
상세페이지로 이동하는 게시판 처리 및 조회수 구현
수정, 삭제, 답글, 메인화면 이동 버튼 생성
mapper
<select id="getBoardDetail" parameterType="int" resultType="board">
SELECT b.*, f.fname
FROM board b, boardfile f
WHERE b.NO =f.NO(+)
and b.no = #{no}
</select>
<update id="readCountup" parameterType="int">
update board
set readcnt = readcnt+1
where no = #{no}
</update>
controller
// 상세페이지
@RequestMapping("boardDetail.do")
public String boardDetail(@RequestParam("no") int no, Model d) {
d.addAttribute("board", service.getBoardDetail(no));
return "WEB-INF\\views\\a03_boardDetail.jsp";
}
dao
// 상세
public Board getBoardDetail(int no);
// 조회 카운트업
public void readCountup(int no);
service
public Board getBoardDetail(int no) {
// 조회 카운트업
dao.readCountup(no);
// 상세 내용을 VO로 가져오기..
return dao.getBoardDetail(no);
}
jsp
<script type="text/javascript">
$(document).ready(function(){
<%--
--%>
$("[name=fname]").click(function(){
if(confirm("다운로드하시겠습니까?")){
location.href="${path}/download.do?fname="+$(this).val()
}
});
});
</script>
</head>
<!-- a02_boardInsert.jsp 내용 복사 해서
a04_boardDetail.jsp 에 붙이고 타이틀을 게시판 상세화면
controller에서 return에서 a04_boardDetail.jsp
로 호출될 수 있도록 처리해주세요.
-->
<body>
<div class="jumbotron text-center">
<h2>게시판상세화면</h2>
</div>
<div class="container">
<%--
name="no" name이 같은 값으로 두개 선언.. 확인
--%>
<form id="frm01" action="${path}/boardInsert.do"
class="form" method="post">
<div class="input-group mb-2 ">
<div class="input-group-prepend ">
<span class="text-center input-group-text ">글번호</span>
</div>
<input name="no" class="form-control"
value="${board.no}" placeholder="제목 입력하세요" />
<div class="input-group-prepend">
<span class="text-center input-group-text">상위글번호</span>
</div>
<input name="refno" class="form-control"
value="${board.refno}" placeholder="제목 입력하세요" />
</div>
<div class="input-group mb-2">
<div class="input-group-prepend">
<span class="text-center input-group-text">제 목</span>
</div>
<input name="subject" class="form-control"
value="${board.subject}" placeholder="제목 입력하세요" />
<div class="input-group-prepend">
<span class="text-center input-group-text">첨부파일</span>
</div>
<input name="fname" class="form-control"
value="${board.fname}" />
</div>
<div class="input-group mb-2">
<div class="input-group-prepend">
<span class="text-center input-group-text">작성자</span>
</div>
<input name="writer" class="form-control"
value="${board.writer}" placeholder="작성자 입력하세요" />
<div class="input-group-prepend">
<span class="text-center input-group-text">조회수</span>
</div>
<input class="form-control"
value="${board.readcnt}" placeholder="작성자 입력하세요" />
</div>
<div class="input-group mb-2">
<div class="input-group-prepend">
<span class="text-center input-group-text">등록일</span>
</div>
<!-- 등록일/수정일은 vo로 할당이 형식이 맞지 않기 때문에
name="@@@" 삭제 처리 -->
<input class="form-control"
value='<fmt:formatDate value="${board.regdte}" type="both"/>' placeholder="작성자 입력하세요" />
<div class="input-group-prepend">
<span class="text-center input-group-text">수정일</span>
</div>
<input class="form-control"
value='<fmt:formatDate value="${board.uptdte}" type="both"/>' placeholder="작성자 입력하세요" />
</div>
<div class="input-group mb-2">
<div class="input-group-prepend">
<span class="text-center input-group-text">내 용</span>
</div>
<textarea name="content" rows="10" class="form-control"
placeholder="내용 입력하세요">${board.content}</textarea>
</div>
<div class="text-right">
<button type="button" onclick="updateProc()" class="btn btn-success">수정</button>
<button type="button" onclick="deleteProc()" class="btn btn-danger">삭제</button>
<button type="button" onclick="replyProc()" class="btn btn-warning">답글</button>
<button type="button" onclick="goMain()" class="btn btn-info">메인화면</button>
</div>
</form>
</div>
<script type="text/javascript">
function updateProc(){
if(confirm("수정하시겠습니까?")){
// 유효성 check
$("form").attr("action","${path}/updateBoard.do");
$("form").submit();
}
}
function deleteProc(){
if(confirm("삭제하시겠습니까?")){
$("form").attr("action","${path}/deleteBoard.do");
$("form").submit();
}
}
function replyProc(){
if(confirm("답글을 처리 하시겠습니까?")){
$("[name=refno]").val( $("[name=no]").val() )
//$("[name=subject]").val("RE:"+$("[name=subject]").val() )
$("[name=content]").val(
"\n\n\n\n\n\n\n\n======= 상위글 =======\n"+
$("[name=content]").val()
);
$("form").attr("action","${path}/boardInsertForm.do")
$("form").submit();
}
}
var proc = "${proc}"
if(proc=="upt"){
if(confirm("수정성공!\n조회리스트화면으로 이동하시겠습니까?")){
location.href="${path}/boardList.do";
}
}
if(proc=="del"){
alert("삭제성공\n조회 리스트화면으로 이동!")
location.href="${path}/boardList.do";
}
function goMain(){
location.href="${path}/boardList.do";
}
</script>
</body>
'JAVA' 카테고리의 다른 글
JAVA 게시판 처리(상세페이지, 삭제)-6 (0) | 2022.10.14 |
---|---|
JAVA 게시판 처리(상세페이지, 수정)-5 (0) | 2022.10.14 |
JAVA 게시판 처리(입력)-3 (0) | 2022.10.07 |
JAVA 게시판 처리(조회, 페이징처리)-2 (0) | 2022.10.07 |
JAVA 게시판 처리(기본구성)-1 (0) | 2022.10.07 |