반응형
index.jsp
인덱스에서 로그인 한 상태의 메뉴와 로그인하지 않은 상태의 메뉴를 나누어 보여주도록 <c:if></c:if>를 사용해 주었다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<h3> 게시판</h3>
<!-- 로그인 안한 상태면 로그인을 보여줘라 -->
<c:if test = "${empty sessionScope.loginId }">
<a href = "${pageContext.request.contextPath }/member/login">로그인</a><br/>
</c:if>
<!-- 비지 않았으면 게시판 목록을 띄워라 -->
<c:if test = "${not empty sessionScope.loginId }">
<a href = "${pageContext.request.contextPath }/member/logout">로그아웃</a><br/>
<a href = "${pageContext.request.contextPath }/member/myinfo?id=${sessionScope.loginId}">내정보확인</a><br/>
<a href = "${pageContext.request.contextPath }/member/out?id=$sessionScope.loginId}">탈퇴</a><br/>
<a href = "${pageContext.request.contextPath }/board/list"> 글목록</a><br/>
</c:if>
BoardList.java
boardlist 서블릿을 만들어 경로를 /board/list 로 지정해준다.
BoardList의 서블릿의 doGet 메소드에서 경로를 설정한다.
BoardService service = new BoardService (); | Service에서 생성해준 getAll(전체검색)을 사용하기 위해 서비스 객체를 생성한다. |
ArrayList<BoardVo> list = service.getAll(); | ArrayList를 생성하여 getAll의 결과값을 모두 담는다. |
request.setAttribute("list", list); | setAttribute로 list의 값들을 담아 저장한다. (클라이언트가 전송받으면 값은 사라진다) |
RequestDispatcher dis = request.getRequestDispatcher("/board/list.jsp"); | RequestDispatcher로 /board/list.jsp로 이동한다. |
dis.forward(request, response); | dis.forward에 list 값을 담아 dispatcher 로 설정한 경로로 이동한다. |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
BoardService service = new BoardService ();
ArrayList<BoardVo> list = service.getAll();
request.setAttribute("list", list);
RequestDispatcher dis = request.getRequestDispatcher("/board/list.jsp");
dis.forward(request, response);
}
list.jsp
만약 리스트에 작성된 글이 없으면 "작성된 글이 없습니다" 라는 안내 메세지가 나타나도록 하였다.
<c:if test = "${empty list}"> | 만약 list가 비었다면 "작성된 글이 없습니다"메세지 보여줌 |
<c:if test = "${not empty list}"> | 만약 list가 비지 않았다면 아래의 테이블을 보여줌 |
<h3>글 목록</h3>
<a href="${pageContext.request.contextPath }/board/add">글 작성</a><br/>
<c:if test = "${empty list}">
작성된 글이 없습니다.
</c:if>
<c:if test = "${not empty list}">
전체목록에는 글 번호, 제목, 작성자가 나타나도록 설정했다. 글의 자세한 내용을 보고싶다면 글 제목을 클릭해 디테일 페이지로 이동하도록 하였다.
<table border = "1"> <tr> <th> 글번호</th> <th> 제목</th> <th> 작성자</th> </tr> |
|
<c:forEach var = "vo" items = "${list }"> | item에 불러온 이름을 넣고 jstl로 사용하려면 또다른 변수를 선언해 list 안에서 값을 꺼내야함 |
<tr> <td> ${vo.num } </td> |
num을 보여줌 |
<td><a href = "${pageContext.request.contextPath }/board/detail?num=${vo.num}"> ${vo.title }</a> </td> | <a href> 태그로 디테일 서블릿 연결된 title 보여줌 |
<td> ${vo.writer } </td> </tr> </c:forEach> </table> |
writer 보여줌 태그 닫음 |
<table border = "1">
<tr>
<th> 글번호</th>
<th> 제목</th>
<th> 작성자</th>
</tr>
<c:forEach var = "vo" items = "${list }">
<tr>
<td> ${vo.num } </td>
<td><a href = "${pageContext.request.contextPath }/board/detail?num=${vo.num}"> ${vo.title }</a> </td>
<td> ${vo.writer } </td>
</tr>
</c:forEach>
</table>
</c:if>
반응형