김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자
  • httperror
  • 코딩공부 #자바공부
  • HTML공부
  • 코딩
  • web.xml수정
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • http에러메세지
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 자바
  • 자바공부
  • 객체지향프로그래밍
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 코딩공부
  • 백앤드
  • ErrorPage
  • 프론트앤드
  • 풀스택
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ JSP/: 기본 익히기

[JSP] #11-5 JSTL 제어문

2022. 10. 26. 17:03

1. JSTL에서 제어문 사용하기

 

1) JSP 방식

 JSTL에서도 제어문(if문, for문 등)을 사용할 수 있다.

 우선 기존의 JSP 파일에서의 방식을 살펴보자.

<%
	String name = request.getParameter("name");
	int age 	= Integer.parseInt(request.getParameter("age"));
	out.print("이름 : " + name + "<br>");
	out.print("나이 : " + age + "<br>");

	//문1)나이가 10미만 "어린이", 20미만 "청소년",  나머지 "성인" 출력
	if(age<10){
		out.print("어린이입니다<br>");
	} else if(age<20){
		out.print("청소년입니다<br>");
	} else {
		out.print("성인입니다<br>");
	} // if end

	//문2)1~나이까지 짝수는 파랑색, 홀수는 빨강색으로 출력
	for(int i=1; i<=age; i++){
		if(i%2==0){
			out.print("<span style='color:blue;'>"+i+"</span>");
		} else {
			out.print("<span style='color:red;'>"+i+"</span>");
		}
	} // if end

%>

 

 위처럼 스크립트릿을 사용하여 for문과 if문을 사용했다.

 다음은 JSTL의 태그를 사용한 방식이다.

 

2) JSTL 방식

 JSTL 방식을 사용하기 위해 우선 해야할 것!!

 지시자로 태그 라이브러리 호출하기!

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

 

 그리고 받아온 값들을 변수에 넣어준 뒤 변수를 활용하려 한다.

<c:set var="name" value="${param.name}"/>
<c:set var="age" value="${param.age}"/>

이름 : ${name} / <c:out value="${name}"/><br>
나이 : ${age} / <c:out value="${age}"/><br>

 

1) 조건문

<c:if test="${name=='itwill'}">대한민국</c:if>

 

2) 다중 조건문

<c:choose>
    <c:when test="${age<10}">어린이</c:when>
    <c:when test="${age<20}">청소년</c:when>
    <c:otherwise>성인</c:otherwise>
</c:choose>

 

3) 반복문

<c:forEach var="a" begin="1" end="${age}" step="2">
    <c:out value="#"></c:out>
</c:forEach>

 

4) 반복문 + 조건문

<c:forEach var="a" begin="1" end="${age}" step="1">
    <c:choose>
        <c:when test="${a%2==0}">
            <span style="color: blue;">${a}</span>
        </c:when>
        <c:otherwise>
            <span style="color: red;">${a}</span>
        </c:otherwise>
    </c:choose>
</c:forEach>

 

 

 

2. JSTL에서 함수(메서드) 호출해서 사용하기

 

 이번에는 JSTL을 사용하여 메서드를 호출해 사용해보자.

 이번에 연결해야할 태그 라이브러리의 주소는 아래와 같다.

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

 JSTL에서 사용되는 함수는 아래와 같다.

 

fn:contains(string, sbustring)

string이 substring을 포함하면 return true 반환


fn:containsIgnoreCase(string, sbustring)

대소문자 관계없이 string이 substring을 포함하면 return true 반환

 

fn:startsWith(string, prefix)

string이 prefix로 시작하면 return True


fn:endsWith(string, suffix)

string이 suffix로 끝나면 return True


fn:escapeXml(string)

stting에 XML과 HTML에서 < >& ' " 문자들이 있으면, XML엔티티 코드로 바꿔준뒤 문자열 반환


fn:indexOf(string, sbustring)

string에서 substring이 처음으로 나타나는 인덱스 반환

 

fn:split(string, separator)

string내의 문자열 separetor에 따라 나누어서 배열로 구성해서 반환


fn:join(array, separator)

array요소들을 separator를 구분자로 하여 연결해서 반환


fn:length(item)

item이 배열이나 컬렉션이면 요소의 개수를 문자열이면 문자의 개수를 반환

<c:set var="txt" value="     White     Space    "></c:set>
글자개수 : ${fn:length(txt)}

 

fn:replace(string, before, after)

string내에 있는 before 문자열을 after 문자열로 모두 변경해서 반환

<%
	// 엔터를 <br>로 바꾸기
	// 1) JSP
	String content = "";
	content = content.replace("\n", "<br>");
	
	// 2) EL+JSP
	pageContext.setAttribute("cn", "\n");
%>
	<c:set var="content" value="Hi
								My name is
								Waldo"/>
	${content} // 엔터 없이 출력
	<hr>				
	${fn:replace(content,cn,"<br>")} // 줄 바꿈이 적용되어 출력
	<hr>


fn:substring(string, begin, end)

string에서 begin인덱스에서 시작해서 end인덱스에 끝나는 부분의 문자열 반환

<c:set var="str" value="Hi My name is waldo"/>
문자열 자르기 : ${fn:substring(str, 3, 9)}<!-- My nam -->


fn:substringAfter(string, sbustring)

string에서 substring이 나타나는 이후의 문자열 반환


fn:substringBefore(string, sbustring)

string에서 substring이 나타나는 이전의 문자열 반환


fn:toLowerCase(string)

string을 모두 소문자로 변경 후 리턴


fn:toUpperCase(string)

string을 모두 대문자로 변경 후 리턴

<c:set var="str" value="Hi My name is waldo"/>
소문자로 바꾸기 : ${fn:toLowerCase(str)}<br>
대문자로 바꾸기 : ${fn:toUpperCase(str)}


fn:trim(string)

string앞뒤의 공백을 모두 제거한 후 반환

공백제거 : @<c:out value="${fn:trim(txt)}"></c:out>@

 

저작자표시 비영리 동일조건 (새창열림)

'⁂ JSP > : 기본 익히기' 카테고리의 다른 글

[JSP] #12-2 Sevlet의 생명주기(LifeCycle)  (0) 2022.10.27
[JSP] #12-1 HttpServlet 파헤치기!  (0) 2022.10.27
[JSP] #11-4 JSTL(JSP Standard Tag Library, JSP전용태그)  (0) 2022.10.26
[JSP] #11-3 EL(Expression Language) - 내장 객체  (0) 2022.10.26
[JSP] #11-3 EL(Expression Language) - 기본 문법  (0) 2022.10.26
    '⁂ JSP/: 기본 익히기' 카테고리의 다른 글
    • [JSP] #12-2 Sevlet의 생명주기(LifeCycle)
    • [JSP] #12-1 HttpServlet 파헤치기!
    • [JSP] #11-4 JSTL(JSP Standard Tag Library, JSP전용태그)
    • [JSP] #11-3 EL(Expression Language) - 내장 객체
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바