7

पर कमांड सत्यापन त्रुटियों को प्रस्तुत करना मैं अपने कमांड ऑब्जेक्ट से त्रुटियों को प्रस्तुत नहीं कर सकता। यह अच्छी तरह से काम करता है लेकिन मेरा। जीएसपी व्यू मेरे द्वारा उठाए गए त्रुटियों को प्रस्तुत नहीं करता है।एक रीडायरेक्ट

def handleModifyProfile2 = { CreditProviderModificationCommand cpmc -> // bind params to the command object 
    if (cpmc.hasErrors()) { 
     flash.message = "Error modifying your profile:" 
     redirect(action: "modifyProfile", params: [creditProvider : cpmc]) 
    } ... 

यहाँ है कैसे मैं अपने .gsp ध्यान में रखते हुए त्रुटियों रेंडर करने के लिए प्रयास करें::

<g:hasErrors bean="${creditProvider}"> 
    <div class="errors"> 
     <g:renderErrors bean="${creditProvider}" as="list" /> 
    </div> 
</g:hasErrors> 

मैं त्रुटियों में प्रदर्शित करने के लिए कैसे प्राप्त कर सकते हैं

यहाँ मेरी नियंत्रक कार्रवाई है राय?

उत्तर

9

आप params का उपयोग कर रीडायरेक्ट में आदेश भेज नहीं सकते हैं।

  • redirect() आईएनजी के बजाय त्रुटि स्थिति में render():

    if(cpmc.hasErrors()) { 
        render(view: 'profile', model: [creditProvider: cpmc]) 
    } 
    

    यह आप क्या कर रहे के लिए सबसे आम मुहावरा है आप कुछ विकल्प हैं।

  • स्टोर सत्र में आदेश रीडायरेक्ट के पार लागू करने के लिए:

    if(cpmc.hasErrors()) { 
        session.cpmc = cpmc 
        redirect(...) 
    } 
    
    // and in your action 
    def cpmc = session.cpmc ?: null 
    render(view: 'profile', model: [creditProvider: cpmc]) 
    

    यह विकल्प कुछ हद तक संदिग्ध है। यदि सही तरीके से नहीं किया जाता है, तो आप सत्र को प्रदूषित कर सकते हैं और मेमोरी लेते हुए ऑब्जेक्ट्स को लटक सकते हैं। यदि सही तरीके से किया जाता है, हालांकि, यह एक पोस्ट-रीडायरेक्ट-प्राप्त करने के लिए एक सभ्य तरीका हो सकता है।

+0

एएच आह! आप रोमिंग के 3 घंटे समाप्त कर चुके हैं। बहुत बहुत धन्यवाद! –

+0

निश्चित रूप से, कोई समस्या नहीं है। –

+1

धन्यवाद, मुझे आपका उत्तर भी उपयोगी पाया। बीटीडब्ल्यू, मुझे लगता है कि सत्र के बजाए फ़्लैश का उपयोग सीधे सत्र-प्रदूषण को रोक देगा? –