[Narp1]43~46_JSTL+EL

hoppda·2022년 5월 13일
0

Narp 복습

목록 보기
7/7

43강~46강

JSTL

Jsp., Standard Tag Library
->Jsp 표준 태그 라이브러리

왜 만들어졌는가?

jsp에서 데이터가 들어가는 부분은 개발자가 해야한다.
jsp에서 프로그래밍적인 부분을 Tag적인 요소로 쓰기 위해 만들어졌다.협업 시 Tag적인 요소는 도움이 된다.




환경설정

  1. https://mvnrepository.com/
    로 들어가서 jstl 을 검색한 후 jar 파일을 다운로드 받아서 이클립스 lib 폴더에 붙여넣기 해준다.
  2. 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>  



EL (Expression Language)

JSTL을 출력할 때 사용하는 출력식,

형태는 ${..식..}

식을 출력하는 것이 EL이다. getAttribute를 자동으로 해준다고 생각하면 편하다.
Controller.java
request.setAttribuite("list",list);
JSP
${list.num}
배열과 리스트 형식의 여러데이터들의 속성(키)값을 받아와서 출력할 수 있다.

  • <c:if test="${vo==null}">
    일치하는 회원이 없습니다.
    <c:if>
profile
힘내자

0개의 댓글