سؤال

ويستخدم لتطوير المداخل وفي 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top