D+31::FinalBorad_board게시판 만들기/*radio 값 수정하는 방법

Am.Vinch·2022년 8월 9일
0

20220808_Mon

jsp에서 컨트롤러 넘어올때 데이터 넘기는 방법 3가지
1.a태그: 단순한 데이터
2.form태그: 데이터 많을 때
3.onclick=location.href: 클릭해서 링크로 들어올때

페이지이동할때는 무조건 쿼리작성한다.
어디서? mapper에서


  • 프로젝트 파일: FinalBoard(src/main/java)
  • 프로젝트 파일: FinalBoard(webapp)
  • 항상 디비를 켜놓고 쿼리작성한다.

외래키는 null값도 들어갈 수 있다!!!
그래서 사실상 뒤에 not null을 넣어줘야 null값이 포함되지않게 해준다.


-dto 파일 만들기

package dto;

public class BoardDTO {
	//변수명 오타 발생 방지위해 디비에서 복붙해서 가져온다.
	private int boardNum;
	private String title;
	private String content;
	private String writer;
	private String createDate;
	private int readCnt;
	private String isPrivate;
	private String boardPw;
	
	
	public BoardDTO() {}
	
	
	public BoardDTO(int boardNum, String title, String writer, String createDate, int readCnt) {
		super();
		this.boardNum = boardNum;
		this.title = title;
		this.writer = writer;
		this.createDate = createDate;
		this.readCnt = readCnt;
	}


	public BoardDTO(int boardNum, String title, String content, String writer, String createDate, int readCnt,
			String isPrivate, String boardPw) {
		super();
		this.boardNum = boardNum;
		this.title = title;
		this.content = content;
		this.writer = writer;
		this.createDate = createDate;
		this.readCnt = readCnt;
		this.isPrivate = isPrivate;
		this.boardPw = boardPw;
	}
	
	
	public int getBoardNum() {
		return boardNum;
	}
	public void setBoardNum(int boardNum) {
		this.boardNum = boardNum;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public String getCreateDate() {
		return createDate;
	}
	public void setCreateDate(String createDate) {
		this.createDate = createDate;
	}
	public int getReadCnt() {
		return readCnt;
	}
	public void setReadCnt(int readCnt) {
		this.readCnt = readCnt;
	}
	public String getIsPrivate() {
		return isPrivate;
	}
	public void setIsPrivate(String isPrivate) {
		this.isPrivate = isPrivate;
	}
	public String getBoardPw() {
		return boardPw;
	}
	public void setBoardPw(String boardPw) {
		this.boardPw = boardPw;
	}
	} 

-인터페이스 생성

package service;
//쿼리를 만들면 실행시키는 메소드 만드는 곳:인터페이스
import java.util.List;

import dto.BoardDTO;
import dto.MemberDTO;

//메소드 정의만 올 수 있다.
public interface BoardService {

	 //글등록
	int insertBoard(BoardDTO boardDTO);
	//글목록조회
	List<BoardDTO> selectBoardList();
		
	//조회수 증가
	int updateReadCnt(int readCnt);
	
	//상세보기
	BoardDTO selectDetailBoard(int boardNum);
	
	//수정
	int updateBoard(BoardDTO boardDTO);
	
	//삭제
	int deleteBoard(int boardNum);
	
	
}

  • Mapper 파일 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 해당 파일에 모든 쿼리문을 작성한다. -->
<mapper namespace="boardMapper">
	<resultMap type="dto.BoardDTO" id="board"><!--dto라는 패키지안에있는 자료형 BoardDTO / board는 resultmap의 모든것을 지칭하는 이름  -->
		<id column="BOARD_NUM" 			property="boardNum"/><!--컬럼을 property 변수명으로 가져오겠다. property: dto에 담긴 변수명을 뜻함  --> 
		<result column="TITLE" 			property="title"/>
		<result column="WRITER" 		property="writer"/>
		<result column="CONTENT" 		property="content"/>
		<result column="CREATE_DATE" 	property="createDate"/>
		<result column="READ_CNT" 		property="readCnt"/>
		<result column="IS_PRIVATE" 	property="isPrivate"/>
		<result column="BOARD_PW" 		property="boardPw"/>
	</resultMap>
<!--글쓰기 등록  -->
<!-- 쿼리는 항상 디비에서 먼저 작성후 성공하면 복붙한다!! -->
	<insert id="insertBoard">
		INSERT INTO FINAL_BOARD (
			BOARD_NUM<!--기본키이기때문에 들고다녀야한다  -->
			, TITLE
			, CONTENT
			, WRITER<!-- 외래키이기때문에 들고다닌다 -->
			, IS_PRIVATE
			, BOARD_PW
		) VALUES (<!-- 데이터 받아올 것들 적는다  -->
			<!--해석:게시판테이블에서 가장큰 게시판 글번호 +1한 값을 조회하는데, 아무것도 없으면 NULL이 되기때문에 NVL함수를 이용해서 NULL이 아닌 0값을 넣어준다.   		
			게시판번호가 하나도없을때는 NULL값이 나오기때문에 1을 더하면 1이아닌NULL값이 나오기때문에 NVL함수사용한다
		 	 지금들고있는 가장 큰번호에서  +1 해야 자동번호순서대로 생김 -->
			(SELECT NVL(MAX(BOARD_NUM),0) + 1 FROM FINAL_BOARD )
			, #{title}
			, #{content}
			, #{writer}
			, #{isPrivate}
			, #{boardPw}
		)
	</insert>
	
	<!--글 목록 조회  -->
	<select id="selectBoardList" resultMap="board">
		SELECT BOARD_NUM
			, TITLE
			, WRITER
			, TO_CHAR(CREATE_DATE,'YYYY-MM-DD') AS CREATE_DATE<!-- 주의!! 별칭 반드시  -->
			, READ_CNT
			, IS_PRIVATE
		FROM FINAL_BOARD
		ORDER BY BOARD_NUM DESC 
	</select>
	
	<!--  조회수 증가-->
	<update id="updateReadCnt">
		UPDATE FINAL_BOARD
		SET
		READ_CNT = READ_CNT + 1
		WHERE BOARD_NUM = #{boardNum}
	</update>
	
	<!-- 상세보기조회 -->
	<select id="selectDetailBoard" resultMap="board">
		SELECT BOARD_NUM
			, TITLE
			, CONTENT
			, WRITER
			, TO_CHAR(CREATE_DATE,'YYYY-MM-DD') AS CREATE_DATE
			, READ_CNT
			, IS_PRIVATE
			, BOARD_PW
		FROM FINAL_BOARD
		WHERE BOARD_NUM = #{boardNum}
	</select>
	
	<!-- 수정  -->
	<update id="updateBoard">
		UPDATE FINAL_BOARD
		SET CONTENT = #{content}
			, TITLE = #{title}
			, IS_PRIVATE = #{isPrivate}
			, BOARD_PW = #{boardPw}
		WHERE BOARD_NUM = #{boardNum}
	</update>
	
	<!-- 삭제 -->
	<delete id="deleteBoard">
		DELETE FINAL_BOARD
		WHERE BOARD_NUM = #{boardNum}
	</delete>
</mapper>

  • BoardServiceImpl 생성
package service;

import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import dto.BoardDTO;
import dto.MemberDTO;
import sqlmap.SqlSessionManager;

//쿼리메소드를 구현하는 곳


public class BoardServiceImpl implements BoardService{//보드서비스를 구현하겠다.
	   //쿼리 실행하는 객체
	   SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	   SqlSession sqlSession = sqlSessionFactory.openSession();

	   //글쓰기등록
	@Override
	public int insertBoard(BoardDTO boardDTO) {
		//쿼리를 실행하려면 위에서 생성한 sqlsession을 가져온다
		//가져온 세션에 글쓰등록을 하는 insert문을 가져온다.
		//매개변수는 우리가 방금 만든 쿼리문id가 있는 "mapper명.쿼리문"을 적고 
		//이들은 우리가 메소드명만들면서 매개변수에 적은 매개변수 dto를 넣는다.
		//자료형은 int이며 이를 담는 이름을 result라 한다.
		//이를 다른곳들에 사용하려면 데이터를 던져야하기때문에 리턴값으로 돌려준다.
		//아까만든 result를 사용하여 리턴값으로 돌려준다.
		//주의) 이들을 사용하려면 BoardServiceImpl 를 컨트롤러에서 맨처음 생성해줘야한다!!
		int result = sqlSession.insert("boardMapper.insertBoard",boardDTO);
		sqlSession.commit();
		return result;
	}
	   //글목록 조회
	@Override
	public List<BoardDTO> selectBoardList( ) {
		//전체 게시글 조회이기때문에 selectList를 해줘야한다!!
		List<BoardDTO> result = sqlSession.selectList("boardMapper.selectBoardList");
		sqlSession.commit();//그냥 반드시 한다.

		return result;
	}
	//조회수 증가
	@Override
	public int updateReadCnt(int readCnt) {
		int result = sqlSession.delete("boardMapper.updateReadCnt", readCnt);
		sqlSession.commit();//그냥 반드시 한다.

		return result;
	}
	//상세보기
	@Override
	public BoardDTO selectDetailBoard(int boardNum) {
		BoardDTO result = sqlSession.selectOne("boardMapper.selectDetailBoard", boardNum);
		sqlSession.commit();//그냥 반드시 한다.
		return result;
	}
	//수정
	@Override
	public int updateBoard(BoardDTO boardDTO) {
		int result = sqlSession.update("boardMapper.updateBoard", boardDTO);
		sqlSession.commit();//그냥 반드시 한다.

		return result;
	}
	//삭제
	@Override
	public int deleteBoard(int boardNum) {
		int result = sqlSession.update("boardMapper.deleteBoard", boardNum);
		sqlSession.commit();//그냥 반드시 한다.

		return result;
	}
	} 

  • 게시판 컨트롤러 생성
package controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import dto.BoardDTO;
import dto.MemberDTO;
import service.BoardService;
import service.BoardServiceImpl;
import service.MemberService;

@WebServlet("*.bo")
public class BoardController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	//BoardServiceImpl에서 만들고 이를 생성해줘야 사용가능하다!!
	private BoardServiceImpl boardService =new BoardServiceImpl();
	private List<BoardDTO> boardList = new ArrayList<>();
	private BoardDTO board;

private String boardNum;
	
    public BoardController() {
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doProcess(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doProcess(request, response);
	}
	
	protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//한글 인코딩 처리
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
	
		String requestURI = request.getRequestURI();
		String contextPath = request.getContextPath();
		String command = requestURI.substring(contextPath.length());
		System.out.println("command = " + command);
		
		//고정된 화면:template.jsp
		//(실제화면)가장 첫번째 화면 페이지
		String page = "template.jsp";
		//계속 변하는 화면:contentPage
		//내부화면
		String contentPage ="";
		boolean isRediect = false;
		
		// 게시판 목록 페이지
		if(command.equals("/boardList.bo")) {
			List<BoardDTO> boardList = boardService.selectBoardList();
		   // boardService.updateReadCnt();
			request.setAttribute("boardList", boardList);
			contentPage="board_list.jsp";
		}
		
		
		//글등록 양식페이지로 이동
		else if(command.equals("/writeBoardForm.bo")) {
			contentPage="write_board_form.jsp";
		}
		//글등록
		else if(command.equals("/writeBoard.bo")) {
			String title = request.getParameter("title");
			String content =request.getParameter("content");
			String isPrivate =request.getParameter("isPrivate");
			String boardPw =request.getParameter("boardPw");
			//매퍼에서 만든 쿼리문을 보고 데이터가져온다
			BoardDTO boardDTO = new BoardDTO();
			boardDTO.setTitle(title);
			boardDTO.setContent(content);
			boardDTO.setBoardPw(boardPw);
			boardDTO.setIsPrivate(isPrivate);
			//문제)writer는 어떻게 가져와야할까?
				//답)
				//게시글 작성자 writer 는 로그인한 사람의 id값이다
				//이미 멤버컨트롤러에 로그인성공하면 로그인정보를 저장하는 세션을 만들어놨다.
				//loginInfo에는 이미 id값과 name 정보가 저장되어있다. 이를 이용한다.
				//사용하기위해 HttpSession라는 인터페이스를 사용한다. 그래서 세션객체 불러온다.
			//1번
				HttpSession session = request.getSession(); //세션을만들어서 데이터받기
	
				//getAttribute의 자료형(리턴타입)은 object이다. 
				//그런데 실제로는loginInfo라는 인자를 넣는것이기때문에 이에 해당하는 자료형을 넣어주면된다.
				//그래서 oginInfo의 자료형 MemberDTO을 넣어주기위해 형변환으로 MemberDTO 자료형 바꿈
			//2번
				MemberDTO loginInfo = (MemberDTO)session.getAttribute("loginInfo");
	
				loginInfo.getMemId();//로그인한 사람의 아이디를 로그인정보에 넣어주기.
				
				//(참고)세션을 사용하는 방법....
				// session); session.setMaxInactiveInterval(10);
				// session.removeAttribute("loginInfo");
	   			//session.invalidate();
			//3번
			boardDTO.setWriter(loginInfo.getMemId());
			
			boardService.insertBoard(boardDTO);
			
			//글등록 완료 alret을 띄우러 갈거기때문에 contentPage가 아닌 page로 만든다
			page="insert_board_result.jsp";
		}
		
		//게시글 상세페이지 이동
		else if(command.equals("/boardDetail.bo")) {
			int boardNum = Integer.parseInt(request.getParameter("boardNum"));
			BoardDTO board = boardService.selectDetailBoard(boardNum);
			boardService.updateReadCnt(boardNum);
			request.setAttribute("board", board);
			contentPage="board_detail.jsp";
		}
		
		//게시글 수정 양식 페이지
		else if(command.equals("/boardUpdateForm.bo")) {
			int boardNum = Integer.parseInt(request.getParameter("boardNum"));
			BoardDTO board = boardService.selectDetailBoard(boardNum);
			request.setAttribute("board", board);
			contentPage="board_update_form.jsp";

		}
		
		//게시글 수정 페이지
		else if(command.equals("/boardUpdate.bo")) {
	int boardNum = Integer.parseInt(request.getParameter("boardNum"));
			String title = request.getParameter("title");
			String content = request.getParameter("content");
			String boardPw = request.getParameter("boardPw");
			String isPrivate = request.getParameter("isPrivate");

			BoardDTO board = new BoardDTO();
			board.setBoardNum(boardNum);
			board.setTitle(title);
			board.setContent(content);
			board.setBoardPw(boardPw);
			board.setIsPrivate(isPrivate);

			boardService.updateBoard(board);
			
			page="boardDetail.bo?boardNum="+ boardNum;
			isRediect = true;

		}
		
		//게시글 삭제페이지
		else if(command.equals("/boardDelete.bo")) {
			int boardNum = Integer.parseInt(request.getParameter("boardNum"));
			int result = boardService.deleteBoard(boardNum);
			request.setAttribute("result", result);
			page="delete_result.jsp";
			
		}
		
		request.setAttribute("contentPage", contentPage);
		
		//페이지이동에 사용되는 if문
		if(isRediect) {
			response.sendRedirect(page);
		}
		else {
			RequestDispatcher dispatcher = request.getRequestDispatcher(page);
			dispatcher.forward(request, response);
		}
	}

}

  • 인덱스파일
    <%@ page language="java" contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <jsp:forward page="boardList.bo"></jsp:forward>
    </body>
    </html> 

  • 게시판 목록 첫 화면
    <%@ 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>
<style type="text/css">

table{
	width: 100%;
	margin: 0 auto;
	text-align: center;
	border-collapse: collapse;
}
table>thead>tr>td{
	background-color: #f7f7f7;
	border-collapse: collapse;
	border-top: 3px solid #01579b;
	border-bottom: 1px solid #bbbbbb;
}
tbody > tr, tbody >tr >td {/* 제목줄  */
	border-bottom:1px solid #bbbbbb;
}
tbody> tr >td:nth-child(2) {
	text-align: left;
}
table > tbody > tr:hover {
	background-color: #fbfbfb;	
}
tr,td{
	padding : 8px;
}
.btndiv{
	text-align: center;
	margin-top: 20px;
}
</style>
</head>
<body>
<form action="boardList.bo" method="post">
<div>
	<div>
		<table >
			<colgroup>
				<col width= "10%">
				<col width= "*%">
				<col width= "15%">
				<col width= "15%">
				<col width= "10%">
			</colgroup>
			<thead>
			<tr>
				<td>글번호 </td>
				<td>제목 </td>
				<td>작성자 </td>
				<td>작성일 </td>
				<td>조회수 </td>
			</tr>
			</thead>
			<tbody>
			<c:choose>
				<c:when test="${boardList.size() eq 0 }">
					<tr>
						<td colspan="5">등록된 게시글이 없습니다.</td>
					</tr>
				</c:when>
				<c:otherwise>
					<c:forEach var="board" items="${boardList}">
					<tr>
						<td>${board.boardNum } </td>
						<td>
						<!-- 주의할점! MAPPER에서 쿼리로 조회한 데이터만 가져올수있다!!! -->
							<c:if test="${board.isPrivate eq 'Y' }">
								<img src="자물쇠.png" width="30px">
							</c:if>
							<a href='boardDetail.bo?boardNum=${board.boardNum}'>${board.title }</a>
						</td>
						<td>${board.writer } </td>
						<td>${board.createDate } </td>
						<td>${board.readCnt } </td>
					</tr>
					</c:forEach>
				</c:otherwise>
			</c:choose>
			</tbody>
		</table>
	</div>
</div>
<div class="btndiv">
<!-- 로그인 안하면 글쓰기 버튼 보이게 하기 -반복문사용 -->
	<c:if test="${not empty sessionScope.loginInfo }">
			<input type="button" value="글쓰기" onclick="location.href='writeBoardForm.bo';">
	</c:if>
</div>
</form>
</body>
</html>

  • 게시글 등록(양식포함)
  <%@ 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>
<style type="text/css">
/* div{
	background-color: gray;
	width: 500px;
	margin: 0 auto;
	text-align: center;
} */

.container{
   width: 34%;
   margin: 0 auto;
   margin-top: 50px;
   font-family: 'ONE-Mobile-Title';
   font-size: 24px;
}

input{
   border: 1px solid black;
   border-radius: 10px;
   height: 38px;
   width: 98%;
   font-size: 24px;
}


</style>
</head>
<body>
<form action="writeBoard.bo" method="post">
<!-- name값은 항상 컬럼명으로 맞춘 변수명과 동일하게!!! -->
	<div>제목</div>
	<div><input type="text" name="title" required="required"></div>
	<div>내용</div>
	<div>
	<textarea rows="5" cols="50" name="content"></textarea>
	</div>
	<div>비밀번호</div>
	<div><input type="password" name="boardPw" ></div>
	<div>비밀글여부</div>
	<div>
		<input type="radio" name="isPrivate" checked="checked" value="N">N
		<input type="radio" name="isPrivate" value="Y">Y
	</div>
<div class="container" align="center">
	<input type="submit" value="등록완료">
</div>
</form>
</body>
</html>

  • 게시글 등록 팝업창
    <%@ page language="java" contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
    	alert('게시글이 등록 되었습니다');
    	location.href='boardList.bo';
    </script>
    </head>
    <body>
    </body>
    </html> ```  

  • 게시판 상세페이지
    <%@ page language="java" contentType="text/html; charset=UTF-8"
       pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style type="text/css">
    table{
    	width: 100%;
    	margin: 0 auto;
    	text-align: center;
    	border-collapse: collapse;
    }
    table>thead>tr>td{
    	background-color: #f7f7f7;
    	border-collapse: collapse;
    	border-top: 3px solid #01579b;
    	border-bottom: 1px solid #bbbbbb;
    }
    tbody > tr, tbody >tr >td {/* 제목줄  */
    	border-bottom:1px solid #bbbbbb;
    }
    tbody> tr >td:nth-child(2) {
    	text-align: left;
    }
    table > tbody > tr:hover {
    	background-color: #fbfbfb;	
    }
    tr,td{
    	padding : 8px;
    }
    .btn{
    	text-align: center;
    	margin-top: 20px;
    }
    </style>
글번호 ${board.boardNum}
조회수 ${board.readCnt }
제목 ${board.title }
작성자 ${board.writer }
작성일 ${board.createDate }
내용 ${board.content }
비밀키여부 ${board.isPrivate }
게시글비밀번호 ${board.boardPw }
  • 게시글 수정(양식포함)
<%@ 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>
<style type="text/css">
table{
	width: 100%;
	margin: 0 auto;
	text-align: center;
	border-collapse: collapse;
}
table>thead>tr>td{
	background-color: #f7f7f7;
	border-collapse: collapse;
	border-top: 3px solid #01579b;
	border-bottom: 1px solid #bbbbbb;
}
tbody > tr, tbody >tr >td {/* 제목줄  */
	border-bottom:1px solid #bbbbbb;
}
tbody> tr >td:nth-child(2) {
	text-align: left;
}
table > tbody > tr:hover {
	background-color: #fbfbfb;	
}
tr,td{
	padding : 8px;
}
.btn{
	text-align: center;
	margin-top: 20px;
}
</style>
</head>
<body>
<form action="boardUpdate.bo" method="post"> 
	<input type="hidden" name="boardNum" value="${board.boardNum}"> 
	<table>
		<tr>
			<td>글번호</td>
			<td>${board.boardNum}</td>
		</tr>
		<tr>
			<td>조회수</td>
			<td>${board.readCnt }</td>
		</tr>
		<tr>
			<td>제목</td>
			<td><input type="text" value="${board.title }" required="required"></td>
		</tr>
		<tr>
			<td>작성자</td>
			<td>${board.writer }</td>
		</tr>
		<tr>
			<td>작성일</td>
			<td>${board.createDate }</td>
		</tr>
		<tr>
			<td>내용</td>
			<td><textarea rows="5" cols="50">${board.content }</textarea></td>
		</tr>
		<tr>
			<td>비밀글 여부</td>
			<td>
			<!-- 방법 1번 -->
				<c:choose>
					<c:when test="${board.isPrivate eq 'Y'}">
						<input type="radio" name="isPrivate"  >아니오
						<input type="radio" name="isPrivate" checked="checked"></c:when>
					<c:otherwise>
						<input type="radio" name="isPrivate" checked="checked">아니오
						<input type="radio" name="isPrivate" ></c:otherwise>
				</c:choose>
				<!-- 방법 2번 -->
					<input type="radio" name="isPrivate" value="N" <c:if test="${board.isPrivate eq 'N'}">checked</c:if>>아니오
					<input type="radio" name="isPrivate" value="Y" <c:if test="${board.isPrivate eq 'Y'}">checked</c:if>>네	
			</td>
		</tr>
		<tr>
			<td>게시글비밀번호</td>
			<td><input type="password" value="${board.boardPw }"></td>
		</tr>
	</table>
	<div class="btn">
		<input type="submit" value="수정완료">
	</div>
</form>
</body>
</html>

  • 게시글 삭제(팝업창)
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	alert('삭제되었습니다.');
	location.href='boardList.bo';
</script>
</head>
<body>
</body>
</html>
profile
Dev.Vinch

0개의 댓글