본문 바로가기

JSP

2022 02 04 - c:out, c:set, choose, forEach, param,form, history

  • c : out  출력태그
<c:out value="Hi"></c:out>

 

  • c : set 변수선언
<c:set var="a" value="11"></c:set>

 

  • c : if test : test에 있는 조건이 true면 실행 조건 한 건에 대한 것
<c:if test="${a > 10}">
ヾ(•ω•`)oヾ
</c:if>

 

  • choose : 복수 조건에 대한 조건처리, else if와 else
<c:choose>
	<c:when test="${a > 10}">
		a는 10보다 크다
	</c:when>
	<c:when test="${a == 10}">
		a는 10과 같다
	</c:when>
	<c:otherwise>
		a는 10보다 작다
	</c:otherwise>
</c:choose>

 

  • c : forEach 반복문
  • var : 변수선언, begin : 시작값, end : 종료값, step : 증가값 ( 음수값은 할당불가 )
  • varstatus의 index : 순차적데이터일 경우 인덱스번호, 아닐경우 var의 숫자
  • count: 그냥 숫자셀때 거의 안씀

- 짝수만 bold처리

<c:forEach var="i" begin="1" end="10" step="1" varStatus="status">
	<c:choose>
	<%-- el에서 같다:eq, 다르다:ne --%>
		<c:when test="${status.count % 2 == 0}">
			<b>${i},${status.index},${status.count}</b></br>
		</c:when>
		<c:otherwise>
			${i},${status.index},${status.count}</br>
		</c:otherwise>
	</c:choose>

</c:forEach>​

 

  • c : import : 해당 페이지의 내용(HTML)을 해당위치에 넣겠다 결과값만 가져오겠다
  • c : param : import 페이지에 해당 키(name)로 값(entity 또는 value속성)을 전송하겠다
<c:import url="Test02.jsp">
	<c:param name="msg">메시지전송!</c:param>
</c:import>

 

  • el에서의 param : 넘어오는 값을 받아올 때 사용 
  • param.키 : 넘어오는 값들 중 일치하는 것을 가져온다.
${param.msg}

 

 

  • form : 값 전달 및 이동용 태그
    action : 목적지
    method : 전송방식
    전송방식 get : 주소창에 키와 값을 포함하여 전송 => 보안에 취약 주소창에 다 뜸 
    전송방식 post : 주소데이터 헤더에 키와 값을 포함하여 전송
    주소데이터 헤더 : 서버에 요청시 사용자의 브라우저, ip등 접속 정보를 포함하여 넘어가는 데이터로 사용자에게는 보이지 않음 
    url : 주소
    uri : 주소 + 정보
<script type="text/javascript">
$(document).ready(function(){
	$("#sendBtn").on("click",function() {
		if($.trim($("[name='msg']").val())==""){
			alert("입력하세요");
		}
		else if(isNaN($("[name='msg']").val()*1)){
			alert("숫자를 입력하세요");
			
		}else{
		//submit : 폼실행
		$("#sendForm").submit();			
		}
	});
});
</script>
<form action="Test04.jsp" id="sendForm" method="post">
	<!-- name: 값 전달시 키값으로 사용 -->
	<input type="text" name="msg"/>
	<input type="button" value="전송" id="sendBtn"/>
</form>

test04에는 값을 전달받는 ${param.msg}가 필요함

 

 

 

배운것을 활용하여 만든 구구단예제

<c:forEach var="i" begin="1" end="9" step="1">
	${param.msg} * ${i} = ${param.msg * i} <br/>
</c:forEach>

 

  • history.back() : 방문기록 바로 전단계로 이동
  • history.go(개수) 
  • histoy.go(-1) = history.back()