2011-03-14 21 views
8

से चयनित डेटा का शुभ दिन!एचटीएमएल चयन बॉक्स, सर्वलेट

मुझे HTML में चयन बॉक्स में कोई समस्या है। मैं अपने सरल सीआरयूडी प्रोजेक्ट के ईडीआईटी भाग पर हूं और उपयोगकर्ता संपादित कर सकने से पहले, चुने गए डेटा को पहले दिखाया जाएगा और मैंने इसे सर्वलेट के माध्यम से डेटाबेस में पुनर्प्राप्त किया था।

अब मैं चाहता हूं कि मेरे द्वारा चुने गए डेटा को मेरे चयन बॉक्स में एक चयनित (डिफ़ॉल्ट) हो। ${product.category}

<select size="1" name="category"> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

मैं इस तरह यह डालने की कोशिश की लेकिन यह काम नहीं करता।

<select size="1" name="category" selected=${product.category}> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

मैं इस तरह कुछ करना चाहता हूँ .. ($ {product.category} == 1), चयनित = विकल्प 1 ...

मैं से एक में THIS की तरह कुछ देखा है तो मंच लेकिन यह PHP प्रारूप में है। मैं जेएसपी का उपयोग करके इसे कैसे कर सकता हूं?

बहुत बहुत धन्यवाद।

उत्तर

11

selected विशेषता एचटीएमएल <option> तत्व पर जाने के लिए है और यह केवल जब विकल्प मान मैचों सेट किया जा चाहिए। सबसे सुरुचिपूर्ण तरीका सशर्त ऑपरेटर ?: का उपयोग करना है।

<select name="category"> 
    <option value="1" ${product.category == '1' ? 'selected' : ''}>Dogs</option> 
    <option value="2" ${product.category == '2' ? 'selected' : ''}>Cats</option> 
    <option value="5" ${product.category == '5' ? 'selected' : ''}>Others</option> 
</select> 

बेहतर अगर आप कुछ List या Map में आइटम नहीं हैं होगा। जैसे List<Category> जहां Category में id और name गुण हैं।

<select name="category"> 
    <c:forEach items="${categories}" var="category"> 
     <option value="${category.id}" ${product.category == category.id ? 'selected' : ''}>${category.name}</option> 
    </c:forEach> 
</select> 

इस तरह आपको सभी विकल्पों के लिए एक ही चीज़ दोहराने की आवश्यकता नहीं है।

+0

धन्यवाद श्री बलुस। :) – newbie

+0

आपका स्वागत है। – BalusC

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