6. 0908_ Spring MVC(계속)
jstl
<-- foreach를 사용하던 것
<c:forEach items="${list}" var="vo">
<td>${vo.getAbName()}</td>
<td>${vo.getAbEmail()}</td>
<td>${vo.getAbTel()}</td>
<td>${vo.getAbBirth()}</td>
<td>${vo.getAbComdept()}</td>
<td>${vo.getAbMemo()}</td>
</c:forEach>
- 컨트롤러 만들고 -> mapper에 mapping해주기
- DAO에 메서드 만들기
-
- mapper에 건 debug문 : mapper에 썼던 sql문을 확인하기 위해 사용함
- return " " <-- " " 안에
- servelt-context에 .jsp로 돼잇어서 return할 때 확장자명 생략해도 되는 것
- 다양한 리턴타입 / 교재 28, 31
- String 리턴타입 대신 ModelAndView 리턴타입 사용해보기
- 등록하고 나면 목록이 보이도록 설정
return "redirect:addrbook_list.do";
- redirect / 교재 32
- DispatcherServlet이 사용하는 뷰 리졸버로 우리가 썼던 것은 InternalResourceViewResolver
- 일반적으로 DispatcherServlet이 사용하는 뷰 리졸버로 InternalResourceViewResolver만으로는 충분하지 않을 경우가 있다.
pdf나 엑셀을 혼용해야 하기 때문이다.
--> 브라우저 상의 테이블 데이터를 엑셀파일로 구현하고 싶을 경우가 있기 때문
- 교재 37
- id에 링크를 걸어서 소스가 바로 연결되도록 하기
addrbook_list에 <a href="addrbook_editform.do">${vo.abId}</a> 쓴 후,
controller에 가서 메서드를 @RequestMapping로 정의해야 한다.
- <a href="addrbook_editform.do?abId=${vo.abId}"> 이 되어야
매개변수로 방명록의 id를 받아올 수 있다.
단, mapper에 <update>가 아니라 <select>여야 하는 것에 주의!
- ctrl + shift + f : 전체 들여쓰기 조정
[삭제 버튼 활성화시키기]
- jquery를 사용하기 / jquery cdn
- onclick= 대신 사용
$(function() {
//btnDelete가 클릭되면 펑션이 실행되게 한다.
$('#btnDelete').on('click', delcheck);
});
[id에 링크를 거는 것 대신 다른 방식으로 해보기]
- Ajax 와 JSON 을 사용해서 id를 눌렀을 때 데이터가 테이블 아래쪽에 나오게 하기
(Ajax로 통신하고 Json으로 데이터)
- 데이터가 어디에 있는것? --> 서버에 있다
서버에 있는 내용을 가져와서 테이블 아래에 보여준다.
클릭할 때마다 전체 화면의 일부가 바뀌는 것
-교재 본 순서 : 1 - 4 - 3 -2
- 스프링의 대표적인 기능이 DI와 AOP이다.
DI : Dependency Injection(의존주입) --> <property>, @Autowired
- DI가 부품의 연결을 담당하고, AOP는 각 부품이 해야할 일에만 전념하게 한다.
- 대표적인 AOP 적용
System.out.println()
Exception처리
Transaction처리
- AOP
A : Aspect (관점) : 로깅, 예외처리, 트랜젝션 등등을 의미
O : oriented
P : programming
- pointcut
내일 )
- AOP를 적용했을 때 달라지는 점?
- AOP를 적용하면 좋은 점?
- addrbook에서 id를 누를 때 데이터 수정하고 저장하면 반영되도록 하기