Skip to content

Commit 9997468

Browse files
committed
Lesson 07 - step07
1 parent 8489fc9 commit 9997468

151 files changed

Lines changed: 3793 additions & 301 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Lesson07/.settings/org.eclipse.core.resources.prefs

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,76 @@
1-
<%-- 2. 프런트 컨트롤러 적용 - 링크에 .do 붙임 --%>
21
<%@ page
32
language="java"
43
contentType="text/html; charset=UTF-8"
54
pageEncoding="UTF-8"%>
65
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
7-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
8-
"http://www.w3.org/TR/html4/loose.dtd">
6+
<!DOCTYPE html>
97
<html>
108
<head>
11-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9+
<meta charset="UTF-8">
1210
<title>회원 목록</title>
1311
</head>
1412
<body>
1513
<jsp:include page="/Header.jsp"/>
1614
<h1>회원목록</h1>
1715
<p><a href='add.do'>신규 회원</a></p>
18-
<c:forEach var="member" items="${members}">
19-
${member.no},
20-
<a href='update.do?no=${member.no}'>${member.name}</a>,
21-
${member.email},
22-
${member.createdDate}
23-
<a href='delete.do?no=${member.no}'>[삭제]</a><br>
16+
<table border="1">
17+
<tr>
18+
<th><c:choose>
19+
<c:when test="${orderCond == 'MNO_ASC'}">
20+
<a href="list.do?orderCond=MNO_DESC">번호↑</a>
21+
</c:when>
22+
<c:when test="${orderCond == 'MNO_DESC'}">
23+
<a href="list.do?orderCond=MNO_ASC">번호↓</a>
24+
</c:when>
25+
<c:otherwise>
26+
<a href="list.do?orderCond=MNO_ASC">번호︎</a>
27+
</c:otherwise>
28+
</c:choose></th>
29+
<th><c:choose>
30+
<c:when test="${orderCond == 'NAME_ASC'}">
31+
<a href="list.do?orderCond=NAME_DESC">이름↑</a>
32+
</c:when>
33+
<c:when test="${orderCond == 'NAME_DESC'}">
34+
<a href="list.do?orderCond=NAME_ASC">이름↓</a>
35+
</c:when>
36+
<c:otherwise>
37+
<a href="list.do?orderCond=NAME_ASC">이름</a>
38+
</c:otherwise>
39+
</c:choose></th>
40+
<th><c:choose>
41+
<c:when test="${orderCond == 'EMAIL_ASC'}">
42+
<a href="list.do?orderCond=EMAIL_DESC">이메일↑</a>
43+
</c:when>
44+
<c:when test="${orderCond == 'EMAIL_DESC'}">
45+
<a href="list.do?orderCond=EMAIL_ASC">이메일↓</a>
46+
</c:when>
47+
<c:otherwise>
48+
<a href="list.do?orderCond=EMAIL_ASC">이메일</a>
49+
</c:otherwise>
50+
</c:choose></th>
51+
<th><c:choose>
52+
<c:when test="${orderCond == 'CREDATE_ASC'}">
53+
<a href="list.do?orderCond=CREDATE_DESC">등록일↑</a>
54+
</c:when>
55+
<c:when test="${orderCond == 'CREDATE_DESC'}">
56+
<a href="list.do?orderCond=CREDATE_ASC">등록일↓</a>
57+
</c:when>
58+
<c:otherwise>
59+
<a href="list.do?orderCond=CREDATE_ASC">등록일</a>
60+
</c:otherwise>
61+
</c:choose></th>
62+
<th></th>
63+
</tr>
64+
<c:forEach var="member" items="${members}">
65+
<tr>
66+
<td>${member.no}</td>
67+
<td><a href='update.do?no=${member.no}'>${member.name}</a></td>
68+
<td>${member.email}</td>
69+
<td>${member.createdDate}</td>
70+
<td><a href='delete.do?no=${member.no}'>[삭제]</a></td>
71+
</tr>
2472
</c:forEach>
73+
</table>
2574
<jsp:include page="/Tail.jsp"/>
2675
</body>
2776
</html>

Lesson07/build/classes/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
/spms
2-
/log4j.properties
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Global logging configuration
2+
log4j.rootLogger=ERROR, stdout
3+
4+
# MyBatis logging configuration...
5+
log4j.logger.spms.dao=TRACE
6+
7+
# Console output...
8+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
9+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
10+
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
440 Bytes
Binary file not shown.
76 Bytes
Binary file not shown.
-2.39 KB
Binary file not shown.

Lesson07/src/log4j.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
log4j.rootLogger=ERROR, stdout
33

44
# MyBatis logging configuration...
5-
log4j.logger.spms.dao=DEBUG
5+
log4j.logger.spms.dao=TRACE
66

77
# Console output...
88
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,33 @@
11
package spms.controls;
22

3+
import java.util.HashMap;
34
import java.util.Map;
45

56
import spms.annotation.Component;
7+
import spms.bind.DataBinding;
68
import spms.dao.MemberDao;
79

8-
//3. Annotation 적용
910
@Component("/member/list.do")
10-
public class MemberListController implements Controller {
11+
public class MemberListController implements Controller, DataBinding {
1112
MemberDao memberDao;
1213

1314
public MemberListController setMemberDao(MemberDao memberDao) {
1415
this.memberDao = memberDao;
1516
return this;
1617
}
1718

19+
public Object[] getDataBinders() {
20+
return new Object[]{
21+
"orderCond", String.class
22+
};
23+
}
24+
1825
@Override
1926
public String execute(Map<String, Object> model) throws Exception {
20-
model.put("members", memberDao.selectList());
27+
HashMap<String,Object> paramMap = new HashMap<String,Object>();
28+
paramMap.put("orderCond", model.get("orderCond"));
29+
30+
model.put("members", memberDao.selectList(paramMap));
2131
return "/member/MemberList.jsp";
2232
}
2333
}

Lesson07/src/spms/dao/MemberDao.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package spms.dao;
22

3-
//1. MemberDao 인터페이스 정의
3+
import java.util.HashMap;
44
import java.util.List;
55

66
import spms.vo.Member;
77

88
public interface MemberDao {
9-
List<Member> selectList() throws Exception;
9+
List<Member> selectList(HashMap<String,Object> paramMap) throws Exception;
1010
int insert(Member member) throws Exception;
1111
int delete(int no) throws Exception;
1212
Member selectOne(int no) throws Exception;

0 commit comments

Comments
 (0)