Jsp., Standard Tag Library
->Jsp 표준 태그 라이브러리
왜 만들어졌는가?
jsp에서 데이터가 들어가는 부분은 개발자가 해야한다.
jsp에서 프로그래밍적인 부분을 Tag적인 요소로 쓰기 위해 만들어졌다.협업 시 Tag적인 요소는 도움이 된다.
환경설정
- https://mvnrepository.com/
로 들어가서 jstl 을 검색한 후 jar 파일을 다운로드 받아서 이클립스 lib 폴더에 붙여넣기 해준다.- jsp페이지 상단에 <%@ %> 태그 라이버리를 넣어준다.
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
core tag를 사용하기 위한 uri
TSTL
core Tag: cif, for, switch~core 등
fmt Tag(포맷팀): 날짜 통화 시장
sql
.
.
.
조건문 <c:if>
<c:if test="조건을 적어준다"></c:if>
예)
<c:set var="cnt" value="7"/>
<c:if test="${cnt%2==0}">
짝수입니다
</c:if>
<c:if test="${cnt%2!=0}">
홀수 입니다.
</c:if>
*if else 구문이 없기에 조건을 한번 더 걸어줘야한다.
Switch 구문
<c:choose>
<c: when test="$(cnt%2==o)">
짝수 입니다
</c:when>
<c: when test="$(cnt%2!=o)">
홀수 입니다
</c:when>
<c:otherwise>
일치하는 when절이 없는 경우에 실행한다.
</c:otherwise>
</c:choose>
반복문
<c:forEach var="i" begin="1" end="5" step="1">
<fony size="${i}">야호~~~ </font><br>
</c:forEach>
반복문을 출력하는 경우
1) 배열
2) List 등
배열과 List를 받을 때 사용하는 반복문
컨트롤러에서 배열이나 List 등을 JSP에게 넘겨줄 때 값을 JSTL+EL을 통해 받을 때
여러개의 형태의 속성을 받을 때 items을 쓴다.
${}는 속성 값(키 값)을 받을 수 있다.
배열을 받을 때
<%
//Controller-->JSP
String[] str={"사과","바나나","포도","귤","오렌지"};
request.setAttribute("strr",str);
%>
<c:forEach var="f" items="${strr}">
$(f)<br>
<c:forEach>
List을 받을 때
Controller-->JSP
List <String> list = new ArrayList<String>();
list.add("Python");
list.add("Java");
list.add("Node.js");
list.add("C++");
list.add("jQuery");
request.setAttribute("list",list);
<c:forEach var="sw" items="${list}">
${sw}<br>
</c:forEach>
한사람의 VO데이터를 받을 때
MemberVO vo=new MemberVO();
vo.setNum(1);
vo.setId("bitcomm");
vo.setName("나길동");
vo.Email("admin@naver.com");
request.setAttribute("vo",vo);
<table border="1">
<tr>
<td>번호</td>
<td>아이디</td>
<td>이름</td>
<td>이메일</td>
</tr>
<tr>
<td>${vo.num}</td>
<td>${vo.id}</td>
<td>${vo.name}</td>
<td>${vo.email}</td>
</tr>
</table>
여러사람의 데이터를 받아올 때
Controller
MemberVO vo=new MemberVO();
vo.setNum(1);
vo.setId("bitcomm");
vo.setName("나길동");
vo.Email("admin@naver.com");
List<MemberVO> list=new ArrayList<MemberVO>();
list.add(vo);
list.add(vo);
list.add(vo);
list.add(vo);
request.setAttribuite("list",list);
JSP
<table border="1">
<tr>
<td>번호</td>
<td>아이디</td>
<td>이름</td>
<td>이메일</td>
</tr>
<c:forEach var="vo" items="${list}">
<tr>
<td>${vo.num}</td>
<td>${vo.id}</td>
<td>${vo.name}</td>
<td>${vo.email}</td>
</tr>
</table>
</c:forEach>
JSTL을 출력할 때 사용하는 출력식,
형태는 ${..식..}
식을 출력하는 것이 EL이다. getAttribute를 자동으로 해준다고 생각하면 편하다.
Controller.java
request.setAttribuite("list",list);
JSP
${list.num}
배열과 리스트 형식의 여러데이터들의 속성(키)값을 받아와서 출력할 수 있다.