티스토리 뷰
7) 스프링 어노테이션 예제 리포지터리 annotation @Repository ,uikit scrollspy 사용법, c:forEach 사용
holy1017 2015. 10. 15. 02:04이전글 http://holy1017.tistory.com/36
.....리포지터리란다...
뭐 그렇다 치자
서비스.자바 열자
이젠 풀경로 쓰기 귀찬다
@Service
public class TestService {
//빈즈에 등록된 똑같은 클래스의 객체를 찿아서 가져옴
@Autowired
private TestDAO dao;
public String test() {
return this.toString();
}
}
오류는 이제 알아서 잡을거라 믿는다
모르면 이전글 보고와라
그리고 메소드 수정좀 하겠다
public String test() {
return this.toString();
}
를
public String testService() {
return this.toString();
}
로 바꾸자
바꾸는 단축키 이전에 알려줬다
단축키나 해당 기능 안쓰고 바꾸면 직접 찿으면서 바꿔라(그러면 오류가 터질 확률이 기하급수적으로 늘어난다)
그리고 서비스에 다음 메소드를 추가하자
public String testDAO() {
return dao.testDAO();
}
빨간줄 잘 처리 했으리라 믿는다
빨간줄 친 부분에서 컨트롤+1 누르면 권장 작업사항이 나온다 알아서 처리하자.
/test/src/main/java/holy/com/test/TestDAO.java 에서
testDAO메소드를 추가했을텐데
testDAO의 리턴값은 테스트 서비스랑 똑같이 this.toString()로 하자
저부분은 님 맘대로 해도되지만 난 귀찬다
컨트롤 스페이스로 자동완성 시키는데 훨 편하거덩
테스트디에이오 코드다
import org.springframework.stereotype.Repository;
@Repository
public class TestDAO {
public String testDAO() {
// TODO 자동 생성된 메소드 스텁
return this.toString();
}
}
서비스랑 디에이오에서 메소드를 작성했는데 컨트롤러에서 안받아주면 심심하겠지?
안그럼 만든 의미가 없잔아?
컨트롤러에서
모델.에드어쩌구(아..영어..) 행복사(이전에 알려줬다)
//홈페이지로 serverTime 라는 이름으로 파람값을 넘김
model.addAttribute("serverTime", formattedDate);
model.addAttribute("testService", svc.testService());
model.addAttribute("testDAO", svc.testDAO());
위처럼 바꾸자
여기까지 왔으니 홈페이지에서 출력해야지?
홈.jsp
열고 행복사 (행복해서 죽었다는거 아니다)
<h1 class="uk-grid">${testController }</h1>
<h1 class="uk-grid">${testService }</h1>
<h1 class="uk-grid">${testDAO }</h1>
처럼 바꾸면 된다
뭔가 한줄 더 끼어있는데 저정돈 알아서 잘 응용하리라 믿는다
결과화면 ...
음... 미안하다.. 그사이 너무 만져댔다...
기냥 간단하게 할 생각이였는데 일부가 작동안해서..
그래서 결과코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page session="false"%>
<html>
<head>
<title>Home</title>
<!-- uikit-->
<link rel="stylesheet" href="../css/uikit.min.css">
<!-- 예제 스타일 그대로 -->
<link rel="stylesheet" href="../css/uikit.docs.min.css">
<!-- 만인의 필수품 제이쿼리 -->
<script src="../js/jquery-1.11.3.min.js"></script>
<!-- uikit -->
<script src="../js/uikit.min.js"></script>
</head>
<body>
<h1>Hello world!</h1>
<P>The time on the server is ${serverTime}.</P>
<c:forEach var="i" begin="1" end="10" step="1">
<c:out value="${i}" />
<br>
</c:forEach>
<div class="uk-grid uk-panel uk-panel-box uk-width-medium-1-4"
data-uk-scrollspy="{cls:'uk-animation-fade', repeat: true,delay:600}">
<h3>Fade</h3>
<p>${testController }</p>
</div>
<div
class="uk-grid uk-panel uk-panel-box uk-width-medium-1-4 uk-push-1-4"
data-uk-scrollspy="{cls:'uk-animation-scale-up', repeat: true,delay:300}">
<h3>Scale up</h3>
<p>${testService }</p>
</div>
<div
class="uk-grid uk-panel uk-panel-box uk-width-medium-1-4 uk-push-2-4"
data-uk-scrollspy="{cls:'uk-animation-scale-down', repeat: true,delay:1200}">
<h3>Scale down</h3>
<p>${testDAO }</p>
</div>
</body>
</html>
그사이 일어났던 코드들이 있다.
지난번에 http://getuikit.com/ 사용방법을 올렸다 그걸 저렇게 사용한다
클래스에다가 페이드css가 들어간게 보일 것이다
클래스 안의 이름들은 직접 메뉴얼을 봐라
저거다 설명할 시간이 없다 클래스 종류만 수십개(?)인데..
그중 scrollspy인 자세한 옵션은 http://getuikit.com/docs/scrollspy.html 에서..
는 무순 scrollspy만 설명 해준다
data-uk-scrollspy 는 스크롤이 움직여서 해당 태그가 보여졌을때
{} 안의 내용대로 작동한다
cls: 옵션은 스크롤로 나타내졌을때 작동할 클래스
http://getuikit.com/docs/animation.html 을 참조하면 차암 좋다
repeat: true 는 스크롤로 넘어간후 다시 나타났을때 다시 작동하는지 여부
delay:600는 재생전까지 지연시간
c:forEach
는 표현 언어는 아니고..
액션태그도 아니고...
음...
(구글링...뒤적뒤적...)
JSTL 란다..
뭔 이름이 이리 어려워;;
맨위에 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 라고 선언한게 보이는데
코어를 사용해서 코어태그로 불리는듯 하다
그럼 코어가 아닌건 다른걸로 불리겠네..
http://gangzzang.tistory.com/114
참조하면 좋다
다음에는 뭘하지...
'스프링' 카테고리의 다른 글
9) 서블렛 추가 (0) | 2015.10.19 |
---|---|
8) 스프링 로그 출력 (0) | 2015.10.19 |
작성 중단 - 터짐- 스프링 로그 출력, 톰캣 서버 임시 파일 경로 변경 방법 (0) | 2015.10.19 |
6) 어노테이션 예제 서비스 annotation @Service (0) | 2015.10.15 |
5) 어노테이션 예제 컨트롤러 annotation @Controller (0) | 2015.10.15 |
2) 스프링 프로젝트 폴더 파일 구조 분석 (2) | 2015.10.12 |
1) 스프링 프로젝터 생성하기 (0) | 2015.10.12 |