-
Spring - JSTLJava/Spring 2018. 8. 22. 17:49반응형
JSP의 EL과 함께 사용 된다.
반복 / 조건 / 데이터 포맷의 기능을 구현 해놓은 라이브러리다.
jstl, standard의 Dependency를 추가한다.
<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>// JSTL에서 사용 가능한 코어 라이브러리<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- 조건/제어/반복 등의 기능을 제공 -->applicationContext.xml에서 사용할 Query를 value Tag에 만든다.
<!-- BoardDaoImpl이 사용할 Query 작성 --><bean id="boardQueries"class="java.util.ArrayList"><constructor-arg name="c"><list><!-- 0번 Index, Insert --><value>INSERT INTO SPRING.BOARD (ID, SUBJECT, CONTENT, EMAIL, CRT_DT, MDFY_DT, FILE_NAME, ORIGIN_FILE_NAME)VALUES (BOARD_ID_SEQ.NEXTVAL, ?, ?, ?, SYSDATE, SYSDATE, ?, ?)</value><!-- 1번 Index, Select --><value>SELECT ID, SUBJECT, CONTENT, EMAIL, CRT_DT, MDFY_DT, FILE_NAME, ORIGIN_FILE_NAMEFROM BOARDWHERE ID = ?</value><!-- 2번 Index, Delete --><value>DELETEFROM BOARDWHERE ID = ?</value><!-- 3번 Index, Select --><value>SELECT ID, SUBJECT, CONTENT, EMAIL, CRT_DT, MDFY_DT, FILE_NAME, ORIGIN_FILE_NAMEFROM BOARDORDER BY ID DESC</value></list></constructor-arg></bean>Dao Interface에도 List<ObjectVO>를 반환하는 selectAllObj() Method를 만든다
BoardDaoImpl에서는 RowMapper로 쿼리문의 데이터를 가져 온다.
@Overridepublic List<MemberVO> selectAllMembers() {return this.jdbcTemplate.query(this.memberQueries.get(Query.SELECT_ALL_QUERY), new RowMapper<MemberVO> () {@Overridepublic MemberVO mapRow(ResultSet rs, int rowNum) throws SQLException {return BindData.bindData(rs, new MemberVO());}});}Service Interface에서도 List<OjectVO>식의 메소드를 만들어주고,
ServiceImpl에서는 objDao.DaoInterface에서 구현한 메소드를 추가한다.
@Overridepublic List<MemberVO> readAllMember() {return memberDao.selectAllMembers();}Controller에서 List<ObjectVO>를 만들고 view에 추가하는 ModelAndView식의 메소드를 만든다.
// http://localhost:8080/ProjectName/board/detail/1@RequestMapping("/board/detail/{id}")public ModelAndView viewBoardDetailPage( @PathVariable int id ) {BoardVO boardVO = this.boardService.readOneBoard(id);ModelAndView view = new ModelAndView("board/detail");view.addObject("boardVO", boardVO);return view;}Controller까지 만든 후, Data가 있는 List를 보여줄 jsp파일을 만들고
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL Core Lib를 추가한다.
List를 JSTL로 보여줄땐,
<c:choose><c:when test="${not empty boardVOList}"> <!-- 비어 있지않을때 동작 --><c:forEach items="${boardVOList}" var="board"><div class="contentWrapper"><div class="number box">${board.id}</div> <!----><div class="subject box"><a href="/HelloSpring/board/detail/${board.id}">${board.subject}</a></div> <!----><div class="writer box">${board.email}</div> <!----><div class="create-date box">${board.crtDt}</div></div></c:forEach></c:when><c:otherwise> <!-- 비어 있을 때 --><div id="no-articles">등록된 게시물이 없습니다.</div></c:otherwise></c:choose>*choose ~ when ~ otherwise 식으로 사용 가능하다.
if ~ else if ~ else와 같은 기능이다.
!은 not으로 풀어쓰고 when조건에는 test=""에 확인할 값을 넣는다.
*List를 출력할 때, PK로 된 데이터로 ORDER BY하면 다른 데이터를 정렬한것보다 빠르다.
*Method나 변수 Class등 이름을 바꿀 때, 해당 데이터에서 Alt + Shift + R을 사용해서 변경 후 Enter를 입력하면 Eclipse가 연결되있는 같은 이름 모두 변경 된 이름으로 자동으로 변경해준다.
반응형'Java > Spring' 카테고리의 다른 글
File - Upload / Download (0) 2018.08.23 Session (0) 2018.08.23 Spring - JDBC (0) 2018.08.21 Eclipse Error - An error occurred while filtering resources Maven Java EE Configuration Problem (0) 2018.08.21 The type org.springframework.core.NestedRuntimeException Error (0) 2018.08.20 댓글