2012-06-20 14 views
11

उदाहरण:ग्राम में enum के मूल्य का उपयोग: चयन जब enum चयन वस्तु का गुण है

batchTag तो की तरह, एक batchRange के enumerated प्रकार विशेषता है मूल्यों के साथ:

JAN1 "January Biweekly 1", 
JAN2 "January Biweekly 2", 

आदि

मैं चयन में बैचटैग का VALUE प्रदर्शित करना चाहता हूं, चयन में

होना चाहिए
"January Biweekly 1" 
"January Biweekly 2" ... 

नहीं

JAN1 
JAN2 
FEB1 
FEB2 
FEB3 ... 

मैं जी में कई बातें की कोशिश की है: यह करने के लिए का चयन करें, लेकिन किसी भी सफलता नहीं मिली। मैंने सोचा था कि शायद "यह" जी के हिस्से के रूप में उपलब्ध होगा: चयन करें (क्योंकि यह स्पष्ट रूप से एक पुनरावृत्ति है) और विकल्प के लिए इसका उपयोग करने की कोशिश की। विकल्प के लिए बैचटैग.नाम, लेकिन यह काम नहीं किया। कोई सुझाव?

धन्यवाद!

उत्तर

20
enum BatchRange { 
    JAN1 "January Biweekly 1", 
    JAN2 "January Biweekly 2", 

    final String value 

    BatchRange(String value) { this.value = value } 

    String toString() { value } 
    String getKey() { name() } 
} 

getKey() विधि नोट करें। और फिर अपने छ: चयन

<g:select name="batch" from="${BatchRange.values()}" optionKey="key" /> 

या

<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" /> 
+1

धन्यवाद! दूसरा सुझाव है जो मैंने मांगा था। – Alexx

+0

बिल्कुल सही! धन्यवाद –

+0

पहला टैग-समाधान '' से चुनें। फिर आपको बैचरेंज टूस्ट्रिंग की आवश्यकता नहीं है- या तो के-तरीकों को प्राप्त करें। – Wonko

0

एक बेहतर दृष्टिकोण इस मामले में i18n संदेशों का उपयोग करने के लिए होगा। दो विकल्प हैं:

  1. चयन में ValueMessagePrefix जोड़ें।
  2. में वर्णित enum लागू करें org.springframework.context.MessageSourceResolvable

this question अधिक जानकारी के लिए देखें।

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