til(89)

경용·2023년 12월 6일

IoT플랫폼실무

< Delete >


@RequestParam
• 게시글 삭제에 필요한 게시글 번호(idx)를 파라미터로 전달받음
전체 로직
• if 문에서 idx가 파라미터로 전달되지 않으면 적절한 메시지를 전달하고, 게시글 리스트로 리다이렉트
• 정상적인 경우, deleteBoard 메서드의 인자로 idx를 전달해서 게시글을 삭제
• deleteBoard 메서드에서 문제가 발생하면 catch 영역으로 빠지게 되고,
각 Exception 클래스의 printStackTrace 메서드를 통해 문제를 추적
• 시스템에 예외가 발생하면 예외 메시지를 사용자에게 전달하고, 게시글 리스트로 리다이렉트

layout:fragment="script"
• 페이지마다 로직이 다르기 때문에 fragment 사용
th:inline="javascript"
• < script > 태그에 th:inline 속성을 javascript로 선언해야 자바스크립트를 사용할 수 있음
< ![CDATA[]] >
• 타임리프는 '<', '>' 태그를 엄격하게 검사하기 때문에 자바스크립트 코드는 꼭 CDATA로 묶어줘야 함
• CDATA는 특수문자를 전부 문자열로 치환할 때 사용
deleteBoard 함수
• deleteBoard 함수의 인자로 게시글 번호를 지정했기 때문에 함수의 파라미터로 게시글 번호를 전달받음
confirm
• 자바스크립트의 Alert창과 유사
• Confirm 함수를 이용해서 다시 한번 게시글의 삭제 여부를 확인하고, 확인과 취소 버튼은 각각 True와 False를 리턴
uri
• BoardController에 선언한 게시글 삭제 메서드와 매핑된 URI를 의미
html
• dataForm이라는 이름의 폼 안에 함수의 파라미터로 전달받은 idx를 hidden 타입으로 추가
• 게시글 삭제 이벤트가 발생했을 때만 엘리먼트를 추가하기 위해 동적으로 폼을 생성하는 방식 사용
$("body").append(html)
• HTML의 < body > 태그 안에 html 변수에 담긴 폼을 추가
document.dataForm.submit()
• < body >에 추가된 폼을 찾아 컨트롤러로 서브밋

<결과화면>

profile
문제를 객관적으로. 그 후 true / false

0개의 댓글