CodeGym/Kursy Java/Moduł 3/Wprowadzenie do TagLiba

Wprowadzenie do TagLiba

Dostępny

7.1 c:jeśli, c:dla każdego

Wszystkim spodobał się kod wykorzystujący tagi zamiast kodu Java, więc postanowili rozszerzyć zakres. Ale programowanie nie ogranicza się do tworzenia obiektów i odczytywania ich właściwości. Musisz wywoływać metody obiektów, pracować z bazą danych i innymi usługami. Co robić?

Musisz tylko przedstawić każdą instrukcję Java jako tag. Było if, będzie <if>, było for, będzie <for>i tak dalej. Dobra, dobra, żartowałem, to nie tak. Cóż, nie może być tak, że ludzie naprawdę decydują się na to. Ale nie, może!

Programiści mogli dodawać dowolne znaczniki do kodu. W zasadzie nie ma się czym martwić – JSP jest standardem rozszerzalnym. Ale poszli dalej i wydali standardową bibliotekę znaczników JSP - JSTL. Strona z nim wygląda tak:

<%@ 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>

Jest całkiem możliwe, że natkniesz się na taki kod w swoich przyszłych projektach, tam dam kilka wyjaśnień.

7.2 Funkcje JSTL

Funkcje JSTL można podzielić na 5 kategorii:

  • Główne tagi;
  • formatowanie znaczników;
  • znaczniki SQL;
  • znaczniki XML;
  • Funkcje wywołujące.

Nie wymienię ich wszystkich, ale wymienię te najpopularniejsze. Zacznijmy od głównych tagów:

1 <c:out> Wyprowadza określone wyrażenie - odpowiednik <%= %>
2 <c:set> Zapisuje wynik wyrażenia do zmiennej
3 <c:remove> Usuwa zmienną
4 <c:catch> Łapie wyjątki
5 <c:if> odpowiednik if
6 <c:choose> przełącznik analogowy
7 <c:when> Używany razem z wyborem
8 <c:otherwise> Używany razem z wyborem
9 <c:import> Pozwala na włączenie treści do kodu (odpowiednik dyrektywy importowej)
10 <c:forEach> dla każdej pętli
jedenaście <c:param> Umożliwia ustawienie opcji importu
12 <c:redirect> Przeadresować
13 <c:url> Tworzy adres URL z parametrami

Podam tylko jeden przykład i na tym zakończę. W zasadzie całkiem możliwe jest odczytanie takiego kodu po pewnej wprawie. Ale nie polecam pisania.

<%@ 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>

Pomyśl o tym, piszemy kod Java w postaci tagów, aby parser JSP przekonwertował te tagi na kod Java. Coś na tym świecie poszło nie tak.

Nawiasem mówiąc, możesz pisać własne biblioteki znaczników. Kiedyś nawet pracowałem w projekcie, w którym były. Niesamowite przeżycie. Gdy tylko w bibliotece zostaną wprowadzone jakiekolwiek zmiany, cały plik jsp natychmiast się psuje.

Co chcesz? Kompilator nie śledzi takich zmian. Można je znaleźć tylko wizualnie podczas przeglądania wygenerowanych stron HTML. A jeśli są to rzadkie scenariusze, które pojawiają się w nietrywialnych sytuacjach… Bóg zapłać za rozwój backendu i typowanie statyczne!

Komentarze
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Ta strona nie ma jeszcze żadnych komentarzy