ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [이론 + 코드] 1/17 월 Spring Framework - JSTL + EL
    Spring 2022. 1. 18. 22:36

    JSP :  View(프리젠테이션 로직)

    + 스크립트적인 요소 (프로그래밍적인 요소) + HTML tag

          1. 지시자 : <%@page %>, <%@include %>, <%taglib %>

          2. 선언문 : <%! 메서드 %>

          3. 스크립틀릿 : <% 자바소스코드 %>

          4. 출력식 : <%= 변수%>, <%= 메서드 호출문%>

          5. 주석문 : <%-- JSP주석 --%>

     

    => 디자이너를 고려해서 코딩을 하자

         스크립트적인 요소를 tag적인 요소로 바꿔서 사용하자

     

    JSTL( Javaserverpage Standard Tag Library ) : 스크립트적인 요소를 tag적인 요소로 바꿔서 사용하자

              c:if / c:forEach / c:choose

     

    EL ( Express Language, 표현식, 출력식 ) : ${ }  

                                                             식 1. var(변수) 2. 연산자(산술, 관계, 논리) 3. 속성이름

     

    JSTL + EL

    기본 설정 : <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

     

    1. For문

    <% for(int i = 1; i<=5 ; i++){
    	if(i%2==0){%>
    	<font size="<%=i%>">야호~</font><br>
    <%}
    } %>
    
    -------Tag--------------------------------------------------------------
    <c:forEach var="i" begin="1" end="5" step="1" >
    		<c:if test="${i%2==0}">
    			<font size="${i}">야호~</font><br>
    		</c:if>
    </c:forEach>

    2. if문 / Switch문

    	<c:if test="${a%2==0 }">
    		짝수입니다.
    	</c:if>
    	<c:if test="${a%2!=0 }">
    		홀수입니다.
    	</c:if>
    	
    	
    	<c:choose>
    		<c:when test="${a%2==0 }">
    			짝수입니다.
    		</c:when>
    		<c:when test="${a%2!=0 }">
    			홀수입니다.
    		</c:when>
    		<c:otherwise> <!-- default -->
    			^^
    		</c:otherwise>	
    	</c:choose>

    3. For문 - 배열 뽑기

    <%
    	String[] str = {"사과", "바나나", "오렌지", "포도", "귤"};
    	request.setAttribute("str", str);
    %>
    --------------------------------------------------------------------------------------
    <c:forEach var="f" items="${str }"> 
    	<!-- ${str} => request.getAttribut("str") -->
    		<tr>
    				<td>${f }</td>
    		</tr>
    </c:forEach>

    items : 여러개를 받을 수 있는 속성

     

    4. For문 - ArrayList 뽑기

    <%
    	List<Board> list = new ArrayList<Board>();
    	Board vo = new Board();
    	vo.setIdx(1);
    	vo.setTitle("Test");
    	vo.setWriter("관리자");
    	vo.setIndate("2022-01-17");
    	vo.setCount(0);
    	
    	list.add(vo);
    	list.add(vo);
    	list.add(vo);
    	
    	request.setAttribute("list", list);
    	
    %>
    --------------------------------------------------------------------------------------------
    <c:forEach var="vo" items="${requestScope.list }">
    			<tr>
    				<td>${vo.idx }</td>
    				<td>${vo.title }</td>
    				<td>${vo.writer }</td>
    				<td>${vo.indate }</td>
    				<td>${vo.count }</td>
    			</tr>
    </c:forEach>

    requestScope.list : request에 있는 list

    sessionScope.list : session에 있는 list


    * fn

    JSTL에서 함수를 써야할때

    함수 태그라이브러리 설정 - functions 안에는 String이 제공하는 Method들이 존재

    <%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    
    1. <td>${fn:replace(vo.content, newLine ,"<br>")}</td>
    2. <td>${fn:split(vo.indate," ")[0] }</td>

           + \는 EL기호안에서 적용이 안된다. 그래서 아래와 같은 방법을 이용한다.

     

    * pageContext 현재페이지에서만 사용할려고 쓰는 함수

    <% pageContext.setAttribute("newLine", "\n"); %>

    댓글

Designed by Tistory.