<ج: إذا> شعارا لصفحة JSF
-
10-07-2019 - |
سؤال
ويستخدم لتطوير المداخل وفي JPS، بحيث يكون معضلة.
ومهمة: عرض <h:dataTable>
فقط عندما القائمة ليست فارغة
هل من الممكن تقديم العلامة <c:if>
لصفحة JSF؟
المحلول
نعم، يمكنك إضافة علامات JSTL في صفحات JSF الخاص بك. ومع ذلك، في الحالة الخاصة بك، يمكنك ببساطة القيام بما يلي:
<h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}">
...
</h:dataTable>
ومع الأسلوب التالي في myBean
:
public boolean isDisplayTable() {
return list != null && list.size() > 0;
}
ويمكنك أيضا محاولة أن (لست متأكدا ما اذا كانت ستعمل):
<!-- Idea from Colin Gislason -->
<h:dataTable value="#{myBean.list}"... rendered="#{not empty myBean.list}">
...
</h:dataTable>
<h:dataTable value="#{myBean.list}"... rendered="#{not myBean.list.empty}">
...
</h:dataTable>
لاحظ أنه يمكنك استخدام !
بدلا من الكلمة not
في تعبيرات EL (انظر دليل <لأ href = "http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7. أتش تي أم أل "يختلط =" نوفولو noreferrer "> هنا حول تعبيرات EL)، مما يؤدي إلى rendered="#{!empty myBean.list}"
.
نصائح أخرى
و<c:if>
(والعلامات JSTL أخرى) يمكن استخدامها في JSF في معظم الحالات. ومع ذلك، فإن لا يمكن استخدامها داخل المكونات التي تكرار في مجموعات - مثل <h:dataTable>
. ولكن في حالتك، وتريد <c:if>
الخارج، ولذلك فمن الممكن. لكن، وكما أشار romaintaz، فمن الأفضل استخدام السمة rendered
.