보통 게시판을 보게되면 공지글을 볼 수 있는데,
해당 공지글에 기간을 정하여 마지막 날짜 값이 오늘 날짜값 보다 작으면, 공지글에서 일반글로 바뀌게 만들어봄.
※DB컬럼값
공지글 지정 컬럼:pin / 시작날짜:startdate / 마지막 날짜:enddate
Oracle DB
<update id="updatePin">
<![CDATA[
update board
set pin = 0
where bno = #{bno}
]]>
</update>
<select id="getEndDate" resultMap="BoardResult">
<![CDATA[
select enddate from board where bno = #{bno}
]]>
</select>
Controller
@ResponseBody
@GetMapping("/updatePin")
public ResponseEntity<String> updatePin(int bno){
service.updatePin(bno);
return ResponseEntity.ok("success");
}
Ajax 통신을 하여 게시판 화면으로 넘어갔을 때, 자동으로 공지 사항 마지막 날짜 값을 오늘 날짜랑 비교해서 오늘 날짜보다 작으면 공지글에서 일반 글로 자동 으로 값이 바뀌게 하기위해서 이렇게 작성함
Service
@Override
public void updatePin(int bno){
BoardVO board = dao.getEndDate(bno);
log.info("==================================");
Date endDate = board.getEnddate();
log.info("공지 마지막일:"+endDate);
Date today = new Date();
log.info("오늘 날짜:"+today);
log.info("==================================");
if(endDate != null && endDate.before(today)) {
board.setPin(0);
dao.updatePin(bno);
}
}
BoardVO board = dao.getEndDate(bno)로 선언 후에 board 변수로 값을 가져오게 작성을 하였음.
처음에는 BoardVO board = new BoardVO() 이렇게 선언하여서 하였는데 null 값이 들어와서,
board테이블에서 enddate 값 만 읽어오는 부분을 생성해주어야 할 것같다 선언함
DAO
@Override
public void updatePin(int bno) {
session.update("mapper.board.updatePin",bno);
}
@Override
public BoardVO getEndDate(int bno) {
return session.selectOne("mapper.board.getEndDate",bno);
}
JSP
<input type="hidden" id="bno" value="${list.bno}">
<input type="hidden" id="enddate" value="${list.enddate}">
나 같은경우 list.jsp 부분에서 forEach 부분에 hidden 값으로 두개를 줌
JS
$(document).ready(function(){
var bno = document.getElementById('bno').value;
var enddate = document.getElementById('enddate').value;
$.ajax({
url: '${path}/board/updatePin',
type: 'get',
data: {'bno':bno,'enddate': enddate },
success: function(response) {
if (response === 'success') {
console.log('Update required');
}
},
error: function(error) {
console.log(error);
}
});
})
페이지가 로드되면 bno,enddate 값을 가지고 success이면 pin컬럼을 update를 쳐서 공지글에서 일반글로 내려오게 하였음!
이 부분은 스샷을 찍기 애매하여서 사진은 올리지 않았지만, 만약 이글을 보고 구현하게된다면 잘 작동할것임!!!
'Spring > Study' 카테고리의 다른 글
[Spring]부모창 에서 자식창 으로 값 전달하기2 (0) | 2023.05.24 |
---|---|
[Spring]부모창 에서 자식창 으로 값 전달하기 (4) | 2023.05.13 |
[Spring]게시판 조회수 중복 방지 (0) | 2023.05.13 |
[Spring] 게시판 이미지 및 파일 등록 후 상세보기 페이지에서 해당 파일 다운로드 (0) | 2023.04.06 |
[Spring]비밀번호 인코딩(BCryptPasswordEncoder 적용)-비밀번호 수정 (0) | 2023.03.19 |