(강의대로 진행한 게시판 사이트에서는 게시글 목록에서 상세 페이지로 접근 → 수정버튼 클릭→ 수정 완료 후 다시 게시글 목록 페이지로 복귀 순으로 사이트가 동작함)
하지만 저는 수정 완료 후 게시글 목록이 아니라 방금 수정 완료한 게시글의 상세 페이지로 접근하게 하고 싶었습니다. 사진6은 기존의 코드입니다.
코드대로라면 글 수정 완료 후에 bbs.jsp, 즉 게시글 목록 페이지로 redirect하게 됩니다. 그렇다면 제가 원하는대로 진행이 되려면 이 부분의 수정이 필요한 것이었죠. 그래서 처음에 수정한 코드는 아래와 같습니다.
기존코드:
script.println(“location.href = ‘bbs.jsp’ ”);
1차 수정 코드:
script.println(“location.href = ‘view.jsp?bbsID=<%=bbsID%>’ ”);
일단 생각나는대로 코드를 적어봤는데 scriptlet tag안에 expression tag를 적어서인지 아니면 닫는 태그가 </script>를 방해해서 그런건지 빨간 줄이 발생하게 되었습니다. JSP에 대해 학습한지 얼마 되지 않아 이 부분에 대해 문법적으로 제가 실수를 한 것인지 아니면 원래 불가능한 부분인지 알아보기 위해 stack over flow에 질문을 하였고 그 결과 다음과 같은 답을 얻었습니다.
저는 답변대로 코드를 작성해보았고 코드는 정상적으로 동작하여 게시글 수정 완료 후 게시글 목록이 아닌 방금 수정한 게시글의 상세페이지로 redirect하게 되었습니다. (사진9는 피드백대로 작성한 코드, 사진10, 11은 변화된 사이트 흐름 과정입니다.)
피드백 받은 코드:
script.println(“location.href = ‘view.jsp?bbsID=” + bbsID + “ ’ ”);
이렇게 해서 제가 원하는 방식으로 사이트가 동작하게 되었습니다. 오늘의 Case는 JSP 내에서 scriptlet tag를, 그리고 그 안에서 HTML 태그 사용을 하다보니 expression tag 활용에 대한 문법이 헷갈려 해결하기 위한 과정이었습니다. 제가 작성한 코드가 동작하지 않았기에 이게 원래 안되는 부분인가? 아니면 문법적으로 잘못 작성인가? 판단이 필요했는데 스택오버플로우의 친절한 답변들을 통해 다행히 잘 해결할 수 있었습니다.