2009-12-28 25 views
8

मैं Grails में गणन का उपयोग कर एक समस्या है: मैं एक grails डोमेन वस्तुGrails GORM और Enums

कोड में कोई enumeraion इस्तेमाल करने की कोशिश:

package it.xxx.tools.kanban 

    import java.util.Date; 

    class Task { 

     String name 
     String description 

     Priority priority 

static belongsTo = [user:User, project:Project] 

     static constraints = { 
      name(nullable:false, maxSize:25) 
      description(nullable:false, maxSize:1500) 
      priority(nullable:true) 
     } 
    } 

package it.xxx.tools.kanban; 

public enum Priority { 

VERY_LOW("Very Low"), 
LOW("Low"), 
MEDIUM("Medium"), 
HIGH("High"), 
VERY_HIGH("Very High") 

private final String value 

Priority(String value){ 
    this.value = value; 
} 

String toString() { 
    value 
} 

String getKey() { 
    name() 
} 

static list(){ 
    [VERY_LOW, LOW, MEDIUM, HIGH, VERY_HIGH] 
} 
} 

<tr class="prop"> 
    <td valign="top" class="name"> 
    <label for="priority">Priority:</label> 
    </td> 
    <td valign="top" class="value       ${hasErrors(bean:taskInstance,field:'priority','errors')}"> 
    <g:select from="${it.weservice.tools.kanban.Priority?.values()}" value="${taskInstance?.priority}" name="priority" noSelection="['':'']"></g:select> 
    </td> 
</tr> 

मैं grails का उपयोग उत्पन्न सभी आदेश

जब मैं वेब आवेदन के माध्यम से बचाने के लिए टास्क वस्तु मैं निम्नलिखित त्रुटि है कोशिश:

Failed to convert property value of type [java.lang.String] to required type [it.weservice.tools.kanban.Priority] for property priority; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [it.weservice.tools.kanban.Priority] for property priority: no matching editors or conversion strategy found 
+0

आप Grails का किस संस्करण का उपयोग कर रहे हैं? –

+0

मैं grails का उपयोग कर रहा हूँ 1.1.1 – pbanfi

उत्तर

6

मैं अन्य उपयोगकर्ता पा सकते हैं क्योंकि अपने ही सवाल का जवाब यह उपयोगी: मैं enums here के बारे में (पृष्ठ के नीचे) मेरी कार्यान्वयन में मैं optionKey = "कुंजी" जी में भूल गया grails सुझावों की जाँच: टैग का चयन करें

यह सब जोड़कर सुचारु रूप से

2

आपको दृश्य को बदलने की जरूरत है, उदाहरण के लिए create.gsp में चयन पर optionValue="value" जोड़ें।

आप जरूरत नहीं:

String toString() { 
    value 
} 

String getKey() { 
    name() 
} 

यो एक getValue() की आवश्यकता है, इसलिए final String value को private final String value बदल जाते हैं।

अधिक जानकारी (स्पेनिश में): http://thewhitehatsolution.wordpress.com/

+0

मुझे खेद है, लेकिन मैं आपके कार्यस्थल से प्रदान किए गए लिंक तक नहीं पहुंच सकता मैं इसके बाद अपनी समस्या का समाधान करने में सक्षम हूं: http: //www.grails। संगठन/टिप्स एंड्रिक्स मैं विकल्प भूल गया था = "कुंजी" जी में: टैग का चयन करें – pbanfi

2

आप अपने नियंत्रक में पाड़ = सच का उपयोग कर रहे हैं, तो आप यह भी कहा कि संपादन renderEditor.template फ़ाइल से विचारों में चुनिंदा टैग उत्पन्न टेम्पलेट संशोधित कर सकते हैं । ऐसा करने के लिए:

  1. grails install-templates

  2. संपादित फ़ाइल src/टेम्पलेट्स/मचान/renderEditor.template
  3. संपादित विधि renderEnumEditor (...) और करने के लिए \ "कुंजी \" optionKey = में जोड़ने टैग के विकल्प का चयन करें।
संबंधित मुद्दे