basic/jsp

JSP 14 [실습1] EL, JSTL-Core 태그 사용해보기

못지(Motji) 2021. 7. 26. 18:07

❕  EL 산술 연산자 이용하여 계산해보기

숫자+문자 ▸ 숫자로 변환 가능한 문자일 경우 숫자로 변환하여 계산된다.

null은 출력되지 않음.

null은 Long 타입의 0으로 치환되어 계산됨

${10 + 10}
${"10" + 10}
${10 - 20}
${10+"십"} // Error 나서 주석처리하고 출력 하였음
${null+11} 
${null}
${null + "28"}

💻 웹문서 출력

❕ 전달받은 값 출력해보기

request로 전달된 값은 requestScope로

session으로 전달된 값은 sessionScope로 값을 꺼내면 됨.

XXXScope 제외하고 변수명만 으로도 출력 가능.

객체, List, 배열 등 모든 유형 전달가능하며 값 꺼내기도 가능

파라미터로 보내진 값은 param.변수명으로 꺼내면 됨

id : ${id}
name : ${name}
age : ${num + "10"}
${num} 오늘
arr : ${requestScope.arr[1]}
vo : ${requestScope.vo.id}
vo : ${requestScope.vo.age}
vo : ${requestScope.vo.pw}
session : ${sessionScope.memId}
${param.name}

💻 웹문서 출력

❕ JSTL 태그의 한종류인 Core 태그 사용해보기

Core 태그 사용에 앞서 JSP 페이지에 태그를 사용하겠다고 선언해주어야 한다.

<%@ taglib prefix="c" uri="http://java.sum.com/jsp/jstl/core" %>

❕ 변수 생성하기 (일반변수) [c:set]

<c:set var="name" value="나나" />
${name}

💻 웹문서 출력

❕ 프로퍼티 값 설정하기 (객체느낌) [c:set]

<!-- * 액션태그, EL -->
<jsp:useBean id="vo2" class="web.jsp14.mvc.TestVO"/>
<c:set target="${vo2}" property="id" value="krong" />
vo.id el : ${vo2.id}

💻 웹문서 출력

❕ 변수삭제 하기 [c:remove]

<!-- 변수삭제 -->
<c:remove var="id" />
<c:remove var="name" />
id : ${id}
name : ${name}

💻 웹문서 출력

❕ 조건문 사용해보기 [c:if]

<!-- if -->
	<c:set var="num" value="1010"/>
	<c:if test="${num >= 100}">
		<h2> ${num}은 100 보다 크다 </h2>
	</c:if>
	<c:if test="${num < 100 }" >
		<h2> ${num }은 100 보다 작다</h2>
	</c:if>

💻 웹문서 출력

❕ 조건문 사용해보기2 [c:choose]

<!--choose -->
	<c:set var="num" value="100" />
	<c:choose>
		<c:when test="${num > 100}">
			<h2> 100 보다 크다</h2>
		</c:when>
		<c:when test="${num < 100}">
			<h2> 100 보다 작다</h2>
		</c:when>
        	<!-- 위조건에 부합하지 않을 경우 실행할 코드 -->
		<c:otherwise>
			<h2> 100이다</h2>
		</c:otherwise>
	</c:choose>

💻 웹문서 출력

❕ 반복문 사용해보기 [c:forEach]

<!-- 자바 업그레이드 for문 ver -->
	<c:set var="arr" value="<%=new int [] {1,2,3,4,5}%>" />
	<c:forEach var="i" items="${arr}">
		${i}
	</c:forEach>
<!-- 일반 for문 -->	
	<c:forEach var="a" begin="1" end="10" step="2">
		<h3> a: ${a}</h3>
	</c:forEach>

💻 웹문서 출력

❕  반복문 사용해보기 + varStatus

<c:set var="arr" value="<%=new int [] {1,2,3,4,5}%>" />
<c:forEach var="a" items="${arr}" begin="0" end="4" varStatus="status">
	<h3> a: ${a} / status.idex: ${status.index} / ${arr[status.index]}</h3>
</c:forEach>

💻 웹문서 출력

Token방식으로 잘라서 보여주는 반복문 사용해보기 [c:forTokens]

<c:forTokens var="s" items="a,b,c,d,e,f,g" delims=",">
	${s}
</c:forTokens>
<c:forTokens var="str" items="오늘 날씨가 매우 좋네요" delims=" ">
	${str}/
</c:forTokens>

💻 웹문서 출력

url을 사용하여 다른 자원결과 삽입하기 (include와 비슷) [c:import]

<c:import var="login" url="/jsp13/loginForm.jsp" />
${login}

💻 웹문서 출력

❕ url 생성하기, 단순이동하기 [c:url][c:redirect]

 <!-- url -->
	 <c:url var="u" value="../jsp13/loginForm.jsp">
     	<!-- url 뒤에 파라미터 값 보내는것 -->
	 	<c:param name="id" value="java" />
	 	<c:param name="pw" value="10011001" />
	 </c:url>
	 <c:redirect url="${u}"/>
<!--
	 <c:redirect url="/jsp13/hello.jsp"/> context path는 생략하고 작성한다.
-->

💻 웹문서 출력

❕ 출력하기 [c:out]

<!-- out 보안상 이게 더 좋다고 함-->
	 <c:set var="num" value="100" />
	 <h1><c:out value="${num}"></c:out></h1>
	 <h1> ${num}</h1>

💻 웹문서 출력