8-modul · 5-dars: Thymeleaf

Daraja: Ilg'or

Thymeleaf. Spring Framework bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Thymeleaf tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Thymeleaf server tomonda HTML shablonni model qiymatlari bilan to'ldiradi. Natural template sifatida ko'p HTML brauzerda ham oddiy ko'rinadi. Spring integratsiyasi model, form binding va MessageSource bilan ishlaydi; kerakli starter yoki view resolver konfiguratsiyasi tanlangan muhitga bog'liq. ${...} model o'zgaruvchisi, *{...} tanlangan obyekt propertysi, #{...} tarjima xabari, @{...} URL va ~{...} fragment ifodasidir. th:object forma kontekstini, th:field maydonni ulaydi. th:each sikl, th:if shart, th:text escaped text uchun. Literal, arithmetic va conditional ifodalar sodda view mantiqiga mos; biznes qoidasini servisda qoldiring. th:fragment qayta ishlatiladigan bo'lakni nomlaydi; th:insert va th:replace joylashtirish usuli bilan farq qiladi. th:attr, attrappend va attrprepend attributelarni o'rnatadi. Attribute precedence ishlash tartibini belgilaydi. No-operation _ odatiy matnni qoldiradi. Inlining text/JavaScript ichida qiymat beradi; escaping kontekstini saqlang va th:utextga ishonchsiz HTML uzatmang.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/8-module%28Spring%20Introduction%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-framework/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

<ul>
  <li th:each="topic : ${topics}">
    <a th:href="@{/topics/{id}(id=${topic.id})}"
       th:text="${topic.title}">Mavzu</a>
  </li>
</ul>

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-08, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)