-
210624_1(model2_jstl)HTML_JS(Sol)/model2 2021. 6. 24. 11:51
redirect태그
리다이렉트 : 브라우저 -------A요청------->A.jsp --redirect--> B.jsp
<---------B로이동할것
------------------B요청----------------->
<--------------B응답---------------------
특징 : 브라우저 주소 : A->B를 가르킨다.
브라우저 화면 : B를 출력한다.
결론 : A와 B는 관계가 없다.
A는 입력처리 B는 목록 출력처리
redirect 태그는 지정한 페이지로 전환시키고자 하는 경우 사용된다.
response.sendRedirect() 와 비슷한 기능을 제공한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <hr> <h1>jstlAProject - redirectTag.jsp</h1> <c:redirect url="http://www.naver.com"/> <hr>
바로 네이버로 이동해버린다.
out태그
사용법
<c:out value="value" excapeXml="{true | false}" default="defaultValue"/>
-value : JspWriter에 출력할 값을 나타낸다. 일반적으로 value 속성의 값은 String과 같은 문자열이다.
만약 value 값이 java.io.Reader의 한 종류라면 out 태그는 Raeder로부터 데이터를 읽어 JspWriter에 출력한다.
-escapeXml : 이 속성의 값이 true 일 경우 아래와 같이 문자를 변경한다. 생략할 수 있으며,
생략할 경우 기본값은 true이다.
문자 변환된 형태 < < > > & & ' ' " + - default : value 속성에서 지정한 값이 존재하지 않을 때 사용될 값을 지정한다.
경로확인
파일명 --디폴트 현재경로
./파일명 -- 현재경로
../파일명 상위경로
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.io.IOException, java.io.FileReader"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <hr> <h1>jstlAProject - outTag.jsp</h1> <% FileReader reader = null; try{ String path = request.getParameter("path"); reader = new FileReader(getServletContext().getRealPath(path)); %> <li>소스코드 : <%=path %> <c:out value="<%=reader%>" escapeXml="true" /> <% } catch(IOException e) { %> <li>에러 : <%=e.getMessage()%> <% } finally { if(reader != null) try{reader.close();}catch(IOException ee){} } %> <hr>
escapeXML false일때
catchTag
예외가 발생한 경우에 사용하는 태그이다. 사용방법은 다음과 같다.
<c:catch var="exName"> ... 예외가 발생할 수 있는 코드 ... </c:catch> ${exName} // var="exName" - 예외가 발생한 경우 예외 객체를 저장할 변수로서 // 블록 밖에서는 이 변수를 이용하여 예외 처리를 하면 된다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <hr> <c:catch var="ex"> <li> name 파라미터의 값 =<%=request.getParameter("name") %> <% if (request.getParameter("name").equals("test")){ %> ${param.name }은 test입니다. <% } %> </c:catch> <c:if test="${ex !=null}"> <li>예외가 발생하였습니다: <li> ${ex} </c:if> <hr>
catchTag.jsp --예외 catchTag.jsp=test --정상 비어있는값
catchTag.jsp= --empty 함수
JSTL 표현언어에서 사용할 수 있는 함수의 종류는 다음과 같다.
함수 설명 length(obj) obj가 List와 같은 Collection인 경우 저장된 항목의 개수를 리턴하고, obj가 문자열일 경우 문자열의 길이를 리턴한다. toUpperCase(str) str을 대문자로 바꾼자 toLowerCase(str) str을 소문자로 바꾼다 substring(str, idx1, idx2) str1.substring(idx1, idx2)의 결과를 리턴한다. idx2가 -1일 경우 strsubstring(idx1)과 동일하다 substringAfter(str1,str2) str1에서 str1에 포함되어 있는 str2이후의 문자열을 구한다. substringBefore(str1, str2) str1에서 str1에 포함되어 있는 str2이전의 문자열을 구한다. trim(str) str 좌우의 공백문자를 제거한다. replace(str,src,dest) str에 있는 src를 dest로 변환한ㄷ. indexOf(str1, str2) str1에서 str2가 위치한 인덱스를 구한다. startsWith(str1, str2) str1이 str2로 시작할 경우 true를 그렇지 않으면 false를 리턴한다. endsWith(str1, str2) str1이 str2로 끝나는 경우 true를 그렇지 않으면 false를 리턴한다. contains(str1, str2) str1이 str2를 포함하고 있는 경우 true를 리턴한다. containsIgnoreCase(str1, str2) 대소문자 구분없이 str1이 str2를 포함하고 있을 경우 true를 리턴한다. split(str1, str2) str2로 명시한 글자를 기준으로 str1을 분리해서 배열로 리턴한다. join(array, str2) array에 저장된 문자열을 합친다. 이때 각 문자열 사이에는 str2가 붙는다. escapteXml(str) XML의 객체 참조에 해당하는 특수 문자를 처리한다.
예를들면, '&'는 '&'로 변환한다.================================ 태그 속성 값
주의) " " " " ====> " ' ' " 또는 ' " " '
속성 = 값
속성 = '값'
속성 = "값"
----------------------el 이라면
속성 = ${값}
속성 = '${값}'
속성 = "${값}"
-------------------- 출력부로 고쳐도
속성 = <%=값%>
속성 = '<%=값%>'
속성 = "<%=값%>"<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <hr> <h1>jstlAProject - useFunction.jsp</h1> <c:set var="str1" value="Functions <태그>를 사용합니다."/> <c:set var="str2" value="사용"/> <c:set var="tokens" value="1,2,3,4,5,6,7,8,9,10"/> <li>length(str1)= ${fn:length(str1)} <li>toUpperCase(str1)= "${fn:toUpperCase(str1)}" <li>toLowerCase(str1)= "${fn:toLowerCase(str1)}" <li>substring(str1, 3, 6)= "${fn:substring(str1, 3, 6)}" <li>substringAfter(str1, str2)= "${fn:substringAfter(str1, str2)}" <li>substringBefore(str1, str2)= "${fn:substringBefore(str1, str2)}" <li>trim(str1)= "${fn:trim(str1)}" <li> replace(str1, src, dest)= "${fn:replace(str1,"","-")}" <li> indexOf(str1, str2)= "${fn:indexOf(str1, str2)}" <li>startsWith(str1,str2)= "${fn:startsWith(srt1,'Fun')}" <li>endsWith(str1, str2)= "${fn:endsWith(str1,"합니다.")}" <li>contains(str1, str2)= "${fn:contains(str1,str2)}" <li>containsIgnoreCase(str1, str2)= "${fn:containsIgnoreCase(str1,str2)}" <c:set var="array" value="${fn:split(tokens,',') }"/> <li> join(array,"-") = "${fn:join(array,"-")}" <li> escapeXml(str1) = "${fn:escapeXml(str1)}" <hr>
'HTML_JS(Sol) > model2' 카테고리의 다른 글
210628_1(model2_게시판만들기) (0) 2021.06.28 210625_1(mvc2_board_ 글입력처리) (0) 2021.06.25 210624_2(MVC2 게시판 만들기) (0) 2021.06.24 210623_1(EL, XML매핑, JSTL) (0) 2021.06.23