안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
Dev 목록 가져오기
Controller
DemoController
@Controller
@RequestMapping("/demo")
public class DemoController {
static final Logger log = LoggerFactory.getLogger(DemoController.class);
@Autowired
private DemoService demoService;
@RequestMapping(path = "/devList.do", method = RequestMethod.GET)
public String selectDev(Model model) {
List<Dev> list = demoService.selectDev();
log.info("list = {}", list);
model.addAttribute("list", list);
return "demo/devList";
}
}
path의 공통적인 "/demo"를 클래스 레벨에 작성하므로써 중복을 제거해주었습니다.
클래스 레벌의 "/demo" + 메소드 레벨의 path = "/devList.do"가 합쳐져서 mapping 처리됩니다.
Service
DemoService interface 생략
DemoServiceImpl
@Override
public List<Dev> selectDev() {
return demoDao.selectDev();
}
Dao
DemoDao interface 생략
DemoDaoImpl
@Override
public List<Dev> selectDev() {
return sqlSession.selectList("demo.selectDev");
}
demo-mapper.xml
<select id="selectDev" resultMap="devMap">
select * from dev order by no
</select>
<resultMap type="dev" id="devMap">
<result column="lang" property="lang"/> <!-- property가 String[] 타입이므로 설정해둔 핸들러가 자동으로 매칭되어 작동! -->
</resultMap>
devList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<jsp:include page="/WEB-INF/views/common/header.jsp">
<jsp:param value="Dev 목록" name="title"/>
</jsp:include>
<table class="table w-75 mx-auto">
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">이름</th>
<th scope="col">경력</th>
<th scope="col">이메일</th>
<th scope="col">성별</th>
<th scope="col">개발가능언어</th>
<th scope="col">등록일시</th>
</tr>
</thead>
<tbody>
<c:if test="${not empty list}">
<c:forEach items="${list}" var="dev">
<tr>
<td>${dev.no}</td>
<td>${dev.name}</td>
<td>${dev.career}</td>
<td>${dev.email}</td>
<td>${dev.gender}</td>
<td>
<c:forEach items="${dev.lang}" var="lang" varStatus="vs">
${lang}${not vs.last ? ',' : ''}
</c:forEach>
</td>
<td>
<fmt:parseDate value="${dev.createdAt}" pattern="yyyy-MM-dd'T'HH:mm" var="createdAt"></fmt:parseDate>
<fmt:formatDate value="${createdAt}" pattern="yy/MM/dd HH:mm"/>
</td>
</tr>
</c:forEach>
</c:if>
</tbody>
</table>
<jsp:include page="/WEB-INF/views/common/footer.jsp"></jsp:include>
'Java > Spring' 카테고리의 다른 글
Spring) 암호화 처리 - BCryptPasswordEncoder (0) | 2022.08.22 |
---|---|
Spring) 회원 가입 처리하기 (index페이지에서 alert 작동 안되는 원인 파악) (0) | 2022.08.19 |
Spring) DB 등록 - 개발자 정보 등록 (StringTypeHandler) (0) | 2022.08.18 |
Spring) DB 접속을 위한 설정 (0) | 2022.08.18 |
Spring) 사용자 입력 값 처리 (3) - Command 객체 (0) | 2022.08.17 |