2011-06-23 17 views
14

इम नए grails (1.3.7) और मैं काम करने के लिए कुछ पाने की कोशिश कर रहा करने के लिए रिक्त है:जीएसपी: जाँच लें कि मॉडल (चर) काम नहीं कर रहा

मेरी नियंत्रक में, मैं वापस कुछ सूचियों जो मैं चाहता हूँ देना मेरे जीएसपी में पहुंचने के लिए। कामों तक पहुंच, लेकिन अगर वे खाली नहीं हैं तो मैं केवल उन तक पहुंच बनाना चाहता हूं। चेक करें कि कोई सूची खाली है या नहीं, तो काम नहीं करता है। युक्त प्रश्न-ऑब्जेक्ट (डाटाबेस-वस्तु)

मेरी जीएसपी पर

अब मैं कोशिश

return new ModelAndView("https://stackoverflow.com/questions/questions", [ questionsList101 : allQuestions101, questionsList102 : allQuestions102, ... ])

allQuestions-वस्तुओं रहे हैं "डीईएफ़ allQuestions ..":

यहाँ क्या मेरी नियंत्रक वापस देता है निम्नलिखित:

<g:if test="${!empty questionsList101}"> 101:<br/> 
<g:each in="${questionsList101}" var="elem" status="i"> 
    <g:checkBox name="${questionsList101[i].id}" value="${questionsList101[i].id}"/>${questionsList101[i].id}<br/> 
</g:each> 
<br/> 
</g:if> 

लूप काम कर रहा है, खालीपन की जांच नहीं है। मैंने "खाली नहीं", "खाली" के साथ प्रयास किया, ... पता नहीं क्या गलत है! किसी भी मदद की सराहना की है! :-)

उत्तर

14

जीएसपी में, आपके पास $ {} अभिव्यक्ति में पूर्ण ग्रोवी समर्थन है। यदि आप चाहें तो आप अपनी ऑब्जेक्ट्स पर उचित विधि कॉल कर सकते हैं। इस प्रयास करें:

<g:if test="${questionsList101 != null && !questionsList101.isEmpty()}"> 
+0

मैंने पहले कोशिश की, यह केवल उन सूचियों के लिए काम करता है जो खाली नहीं हैं - हास्यास्पद। अन्यथा मुझे यह त्रुटि संदेश मिलता है: GroovyPageView को संसाधित करने में त्रुटि: टैग को निष्पादित करने में त्रुटि: विधि को आवेदक नहीं कर सकता है() null ऑब्जेक्ट पर :-) अन्य विधि के लिए समान है। यदि ऑब्जेक्ट शून्य है तो मैं उन्हें आमंत्रित नहीं कर सकता - बहुत मजेदार .... – nano7

+0

ऐसा लगता है कि आपको बस एक शून्य जांच की आवश्यकता है। मैं अपना जवाब अपडेट करूंगा। –

+0

धन्यवाद! यह पूरी तरह से काम करता है! :-) – nano7

34

"grooviest" तरीका यह है

<g:if test="${questionList101}"> 

ग्रूवी में है, अशक्त वस्तुओं और खाली संग्रह गलत पर मजबूर कर रहे हैं। यहां ग्रोवी सच्चाई पर प्रलेखन देखें: http://groovy-lang.org/semantics.html#Groovy-Truth

संबंधित मुद्दे