CodeGym /Java Course /모듈 3 /TagLib 소개

TagLib 소개

모듈 3
레벨 13 , 레슨 6
사용 가능

7.1 c:if, c:forEach

모두가 자바 코드 대신 태그를 사용한 코드를 좋아해서 범위를 확장하기로 했습니다. 그러나 프로그래밍은 개체를 만들고 해당 속성을 읽는 것으로 제한되지 않습니다. 개체의 메서드를 호출하고 데이터베이스 및 기타 서비스로 작업해야 합니다. 무엇을 해야 합니까?

각 Java 문을 태그로 나타내기만 하면 됩니다. 이었다 if, 이었다 <if>, 이었다 for, <for>이었다 . 알았어, 농담이야, 그런 게 아니었어. 사람들이 실제로 그렇게 하기로 결정할 수는 없습니다. 하지만 아니, 어쩌면!

프로그래머는 코드에 태그를 추가할 수 있습니다. 원칙적으로 걱정할 것이 없습니다. JSP는 확장 가능한 표준입니다. 그러나 그들은 더 나아가 JSP 표준 태그 라이브러리인 JSTL을 출시했습니다. 이 페이지는 다음과 같습니다.



<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
 
<html>
   <head>
       <title> JSTL Example</title>
   </head>
 
   <body>
        <c:set var = "salary" scope = "session" value = "${2000*5}"/>
        <c:if test = "${ salary > 2000}">
            <p>My salary is: <c:out value = "${salary}"/><p>
        </c:if>
   </body>
</html>

향후 프로젝트에서 이러한 코드를 접하게 될 가능성이 매우 높습니다. 여기에서 몇 가지 설명을 드리겠습니다.

7.2 JSTL 함수

JSTL 함수는 5가지 범주로 나뉩니다.

  • 메인 태그;
  • 포맷팅 태그;
  • SQL 태그;
  • XML 태그;
  • 함수를 호출합니다.

모두 나열하지는 않겠지만 가장 인기 있는 것만 나열하겠습니다. 기본 태그부터 시작하겠습니다.

1 <c:out> 지정된 표현식을 출력합니다. <%= %>와 동일합니다.
2 <c:set> 식의 결과를 변수에 씁니다.
<c:remove> 변수를 삭제합니다
4 <c:catch> 예외 포착
5 <c:if> 만약의 아날로그
6 <c:choose> 아날로그 스위치
7 <c:when> 선택과 함께 사용
8 <c:otherwise> 선택과 함께 사용
9 <c:import> 코드에 콘텐츠를 포함할 수 있습니다(import 지시문과 동일).
10 <c:forEach> 각 루프에 대해
열하나 <c:param> 가져오기 옵션을 설정할 수 있습니다.
12 <c:redirect> 리디렉션
13 <c:url> 매개변수로 URL 생성

한 가지 예만 들고 마치겠습니다. 원칙적으로 약간의 기술을 사용하면 이러한 코드를 읽을 수 있습니다. 하지만 저는 쓰는 것을 추천하지 않습니다.



<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
 
<html>
   <head>
      <title> Each Tag Example&</title>
   </head>
 
   <body>
       <c:forEach var = "i" begin = "1" end = "5">
            Item <c:out value = "${i}"/><p>
       </c:forEach>
   </body>
</html>

JSP 파서가 이러한 태그를 Java 코드로 변환할 수 있도록 태그 형식으로 Java 코드를 작성합니다. 이 세상의 무언가가 잘못되었습니다.

그건 그렇고, 당신은 자신의 태그 라이브러리를 작성할 수 있습니다. 나는 그들이 있던 프로젝트에서 한 번도 일했습니다. 멋진 경험. 라이브러리가 변경되는 즉시 전체 jsp가 중단됩니다.

당신은 무엇을 원하십니까? 컴파일러는 이러한 변경 사항을 추적하지 않습니다. 생성된 HTML 페이지를 볼 때 시각적으로만 찾을 수 있습니다. 그리고 이것이 사소하지 않은 상황에서 발생하는 드문 시나리오라면 ... 백엔드 개발과 정적 타이핑에 신의 축복이 있기를!

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION