자바 스크립트 팝업창으로 el 태그 값을 넘기는 방법은 다음과 같다.

순서도를 보자

1. onclick으로 자바 스크립트 함수에 ${board.num} el 태그 값을 전달한다.
2. popup 함수에 매개변수 num을 선언한다.
3. 선언된 매개 변수를 window.open 팝업 함수의 url을 통해 .do로 전달한다.
4. 전달된 매개변수 값은 Controller에서 출력하여 결과를 확인한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tr>
<td>번호</td><td>제목</td><td>작성자</td><td>조회수</td>
</tr>
<c:forEach var="board" items="${selectBoard }">
<tr>
<td>${board.num }</td>
<!-- oncliick으로 자바스크립트 함수에 ${board.num}의 값을 전달한다. -->
<td><a href="#" onclick="popup(${board.num});">${board.subject }</a></td>
<td>${board.writer }</td>
<td>${board.readcount }</td>
</tr>
</c:forEach>
</table>
</body>
</html>
<script type="text/javascript">
/* popup 함수에 매개 변수 num을 선언한다. */
 function popup(num){
	/* 매개변수 num을 알럿으로 출력한다. */
	 alert(num);
	/* 다음과 같이 window.open 함수로 url에 값을 전달한다. */
	 window.open("/board/popup.do?num="+num,"width=300, height=300");
 }
</script>

컨트롤러 비밀번호는 다음과 같이 구성해보자

	@RequestMapping(value = "/board/popup.do")
	public String popup(BoardVO vo, Model model) {
		//전달한 함수는 BoardVO로 받아서 출력을 시도한다.
		System.out.println("vo : " + vo.getNum());
		BoardVO boardVO = boardService.getBoard(vo);
		System.out.println("비번 : "+boardVO.getPasswd());
		model.addAttribute("board", boardVO);
		return "/board/popup";
	}

그럼 코드를 실행하여 확인을 해보도록하자

다음과 같이 제목을 클릭하면 번호가 팝업창으로 나온다.

그리고 팝업창을 확인할 수 있다.

콘솔에서 전달된 값을 확인할 수 있다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
	$(document).ready(function(){
	$("#btnStr").click(function(){	
		alert("접속");
		var pwd1 = $("#pw1").val();
		var pwd2 = $("#pw2").val();
		if(pwd1==pwd2){
			alert("비밀번호가 일치합니다.");
			window.close();
			window.opener.location.href="/board/contentBoard.do?num="+$("#num").val();
			} else {
			alert("비밀번호가 불일치합니다.");
			window.close();
			window.opener.location.location.href="/board/selectBoard.do"
		}
	})
	})
</script>
</head>
<body>
	<input type="hidden" id="num" value="${board.num }">
	<input type="hidden" id="pw1" value="${board.passwd}">
	<input type="text" id="pw2">
	<input type="button" id="btnStr" value="비밀번호 확인">
</body>
</html>

+ Recent posts