+1 امتیاز
قبل در کامپیوتر و اینترنت توسط (1.1هزار امتیاز)

تفاوت تگ های ui:decorate و ui:composition در JSF چیست؟

2 پاسخ

+1 امتیاز
قبل توسط (479 امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

با مطالعاتی که من کردم یکی از تفاوت های این دو تگ این است که تگ  ui:composition فقط با داده ای درون تگ خودش کار می کنه اما در ui:decorate اینطور نیست ،

یعنی شما در ui:composition نمی توانید از یک template خارجی استفاده نمایید ولی ui:decorate این اجازه رو به شما میده.

نتیجه: اگر در برنامه نیاز به ساختن کامپوننتی داریم که درون اون کامپوننت می خواهیم یک قالب یا template خارجی وارد کنیم باید از ui:decorate استفاده کنیم و در غیر اینصورت از ui:composition.

قبل توسط (1.1هزار امتیاز)
توضیح عالی بود. به بیان دیگر ui:decorate امکان استفاده template در template را به ما می دهد.
قبل توسط (938 امتیاز)
+1
فکرکنم توضیحات خود شما @Saeed Zarinfarm جواب رو کاملنر کرد!و خیلی به این چیزی که شما ذکر کردید درمتن اشاره ای نشد...
+1 امتیاز
قبل توسط (938 امتیاز)

 تشابه شان  وارد کردن(include) تمپلیتها میباشد با این تفاوت که ui:decorate این کار را در بخشی از صفحه انجام میدهد درحالیکه ui:composition یک تمپلیت را در کل صفحه مستقر میکند و همه صفحه تحت تاثیر آن قرار میگیرند.

۱- بوسیله ui:component میتوان templateیی که ساخته شده را در کل صفحه بار گذاری کرد و از آن در صفحه استفاده کرد.مانند:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                xmlns:fn="http://java.sun.com/jsp/jstl/functions"
                template="/layout/template.xhtml">

و از طریق ui:define به بخش های ساخته شده در template دسترسی پیدا کرد و آنها را پر کرد:

<ui:define name="content">
        <ui:param name="totalAccount" value="#{fn:length(account.accounts)}"/>

 

۲- ui:decorate از لحاظ کارایی شبیه به ui:include میباشد و هردو برای وارد کردن یک صفحه به بخشی از صفحه دیگر می باشد با این تفاوت که اولی برای وارد کردن template استفاده مبشود و دومی برای وارد کردن صفحاتی که با تگ ui:fragment ساخته شده اند.

سوالات مشابه

+1 امتیاز
2 پاسخ 733 بازدید
سوال شده 10 سال قبل در کامپیوتر و اینترنت توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 828 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط aminiS (479 امتیاز)
+1 امتیاز
1 پاسخ 346 بازدید
0 امتیاز
1 پاسخ 1.6هزار بازدید
0 امتیاز
1 پاسخ 433 بازدید
0 امتیاز
1 پاسخ 416 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط samaz (0 امتیاز)
+2 امتیاز
3 پاسخ 1.6هزار بازدید
0 امتیاز
0 پاسخ 233 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط crusader (97 امتیاز)
0 امتیاز
1 پاسخ 472 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط mbanaee (32 امتیاز)
0 امتیاز
1 پاسخ 311 بازدید
...