2009-08-26 13 views
8

जेएसएफ 2.0 फेसलेट टेम्पलेट में list.size() को कॉल करने के लिए वाक्यविन्यास क्या है (उदाहरण के लिए, एच: outputText तत्व का उपयोग करके)?आप जेएसएफ 2.0 फेसलेट टेम्पलेट से List.size() को कैसे कॉल करते हैं?

+0

संभावित डुप्लिकेट: http://stackoverflow.com/questions/206161/jsf- सूची-लंबाई – seth

+0

@ सेठ - हालांकि इसमें एक उचित उत्तर होता है (जिसमें जेएसएफ 2.0 के साथ काम करना चाहिए, हालांकि उत्तर इसे पूर्ववत करता है), मैं यह प्रश्न पूछने के लिए विशेष रूप से यह पूछ रहा हूं कि जेएसएफ 2.0 के लिए कोई अपडेट है या नहीं समाधान। :) – jsight

उत्तर

22

कैसे इस बारे में:

<h:outputText value="#{fn:length(someBean.someList)}" /> 

आप अपने JSF पेज में functions taglib संदर्भ के लिए (यूआरआइ: http://java.sun.com/jsp/jstl/functions) की आवश्यकता होगी।

5

यह जेएसएफ 2.0 के साथ बिल्कुल कोई समस्या नहीं है। जेएसएफ स्पेक को अभी भी एक वर्ग की आवश्यकता है जो बीन स्पेक के अनुरूप है। संग्रह कक्षाएं .size() विधि के साथ ऐसा नहीं करती हैं। यह अभी भी .getSize() होना चाहिए। कक्षा मूल्यों तक पहुंचने के लिए "मानक" तरीके की आवश्यकता को देखते हुए, हम जल्द ही जेएसएफ में इसके आसपास नहीं जा रहे हैं। किसी को संग्रह कक्षाओं को ठीक करने की जरूरत है।

+0

आईसी ... मैं उम्मीद कर रहा था कि उन्होंने विधि कॉल की अनुमति देने के लिए अभिव्यक्ति वाक्यविन्यास को फिर से बनाया था। इसका दुरुपयोग किया जा सकता है, लेकिन यह आसानी से इस तरह के मामलों के आसपास काम करेगा। :) मुझे अभी भी समझ में नहीं आता क्यों संग्रह वर्ग डिजाइनर ने इस तरह से काम करना चुना। – jsight

5

बस कोशिश #{myBean.myList.size()}

+2

वह मानक एल के साथ काम नहीं करेगा। हालांकि एल एक्सटेंशन हैं (जैसे कि जेबॉस एल) जो इस नोटेशन की अनुमति देते हैं। –

+2

यह किसी भी जावा ईई 6 एप्लीकेशन सर्वर – Lincoln

+0

पर काम करेगा, जाहिर है कि यह मामला नहीं है (मेरे विस्मय के लिए): http://community.jboss.org/thread/173971 – Kawu

2

नोट: "fn" के लिए सटीक नाम स्थान इस तरह जोड़ा जाता है:

<html xmlns="http://www.w3.org/1999/xhtml" 
     ... 
     xmlns:fn="http://java.sun.com/jsp/jstl/functions"> 
संबंधित मुद्दे