<!-- 메세지 출력 -->
<c:set var="msg" value="${requestScope.msg}" />
<c:if test="${!empty msg}">
<script>alert('${msg}');</script>
</c:if>
1. 상단에 메세지 출력해주는 부분을 변경했다.
<c:set var="msg" value="${requestScope.msg}" />
<c:set> : 이 태그는 변수 설정을 위한 JSTL 태그로 var 속성에 설정할 변수 이름을 지정하고, value 속성에 해당 변수를 할당할 값을 지정하면 된다.
var="msg" : 변수 이름을 msg로 지정해서 페이지에서 사용할 수 있도록 설정한다.
value="${requestScope.msg}" : requestScope.msg를 msg 변수에 할당한다. requestScope는 JSP에서 request 객체에 저장된 속성에 접근하는 방법으로 request 객체에 있는 msg 속성 값을 가져와서 msg 변수에 저장한다.
requestScope 는 request 범위의 속성들을 가져올 때 사용하는 EL 객체.
<c:if test="${!empty msg}">
<c:if> : 조건문을 실행하는 JSTL 태그. test 속성에 주어진 조건이 true일 때만 내부 내용이 실행된다.
${!empty msg} : msg가 비어 있지 않으면(msg에 값이 있으면) true로 평가되어,
!empty: EL에서 empty는 값이 비어 있거나 null일 경우 true로 평가됩니다. !empty는 그 반대, 즉 값이 존재하는 경우 true로 평가됩니다.
이 조건은 msg가 비어 있지 않으면(즉, msg에 값이 있을 때만) true가 되어 alert을 실행하도록 합니다.
alert('${msg}'): JavaScript에서 alert() 함수는 팝업 창을 띄우는 함수입니다. 이 팝업 창 안에 msg 변수의 값을 표시합니다.
${msg}: EL을 사용하여 msg 변수의 값을 삽입합니다. msg는 앞서 <c:set> 태그에서 설정된 변수로, request 객체의 msg 속성 값을 가집니다.
전체 흐름:
requestScope.msg 값을 msg 변수에 할당합니다. 이 값은 JSP 페이지의 request 객체에 저장된 메시지입니다.
msg가 비어 있지 않으면, 즉 msg에 메시지가 있다면, alert 창을 띄웁니다.
alert 창에는 msg 변수의 값이 표시됩니다. 이 값은 서버에서 전달된 메시지가 될 수 있습니다.
이 코드의 사용 예시:
서버에서 에러 메시지나 성공 메시지를 request 객체에 저장한 후, JSP 페이지에서 그 메시지를 팝업(alert)으로 사용자에게 알릴 때 유용하게 사용됩니다.
예를 들어, 사용자가 폼을 제출했을 때 성공 메시지나 오류 메시지를 request.setAttribute("msg", "등록이 완료되었습니다.");와 같이 서버에서 설정하고, 이 JSP 페이지에서는 해당 메시지를 화면에 팝업으로 표시할 수 있습니다.
정리:
<c:set> 태그를 사용하여 requestScope.msg 값을 msg 변수에 할당합니다.
<c:if> 태그로 msg 값이 비어 있지 않으면 JavaScript의 alert()로 메시지를 팝업으로 표시합니다.
이 방식은 JSTL/EL을 사용하여 JSP 코드 내에서 Java 코드 없이도 동적 메시지를 처리하는 현대적인 방법입니다.
나머지 부분도 알아서 변경하면 된다. if구문ㅇ ㅣ아닌이상 어려운 것은 없으니까~~~