ejb - Jsf validation error (shown by h:message) while updating Model, why? -


सूची. एक्सएचटीएमएल:

  & lt; h: selectOneMenu value = "# {produtosController। selected.codigo} "& gt; & Lt; f: चयनआइटम मान = "# {produtosController.itemsavailableSelectOne}" / & gt; & Lt; / h: selectOneMenu & gt; & Lt; h: कमांड बटन कार्रवाई = "# {produtosController.createByCodigos}" मान = "बसकार" / & gt;  

नियंत्रक वर्ग विधि:

  सार्वजनिक स्ट्रिंग बनायेंकोडिगोस () {items = new listDataModel (ejbFacade.findByCodigos (current.getCodigo ())); updateCurrentItem (); वापसी "सूची"; }  

मुखौटा कक्षा विधि:

<पूर्व> सार्वजनिक सूची & lt; Produtos & gt; FindByCodigos (पूर्णांक कोडोगो) {क्वेरी q = em.createNamedQuery ("Produtos.findByCodigo"); Q.setParameter ("codigo", codigo); वापसी q.getResultList (); }

बीन क्लास क्वेरी:

  @NamedQuery (name = "Produtos.findByCodigo", क्वेरी = "चयन पी से प्रॉड्यूस पी WHERE p.codigo = : Codigo ") @ स्तंभ (नाम =" कोडोगो ") निजी पूर्णांक कोडोगो;  

टिप्पणियों से, मैं समझता हूं कि यह मान्यकरण त्रुटि है: मान मान्य नहीं है

इसका मूल रूप से मतलब है कि वर्तमान में चयनित आइटम selectitems की सूची का हिस्सा नहीं है क्योंकि यह वर्तमान अनुरोध में है यह भी दिखता है कि आइटम मान एक गैर-मानक प्रकार ( Produtos हो सकता है?) है। इस समस्या के तीन संभावित कारण हैं:

  1. आइटम का प्रतिनिधित्व करने वाले प्रकार के बराबर () और हैश कोड () मूल्य या गलत तरीके से कार्यान्वित नहीं किया जाता है इसे ठीक करने के लिए, आईडीई इसे स्वचालित बनाएं या पढ़ा है।

  2. एक कस्टम कनवर्टर का उपयोग किया गया है और getAsObject () ने गलत मान वापस कर दिया है। इसे ठीक करने के लिए, सुनिश्चित करें कि यह ठीक वही मान लौटा रहा है क्योंकि यह getAsString () के माध्यम से पारित किया गया था।

  3. बीन को अनुरोध किया गया है और चयनकर्ताओं की सूची प्रारंभिक अनुरोध के समान नहीं है, जब आप फ़ॉर्म प्रस्तुत करते हैं इसे ठीक करने के लिए, आपको यह सुनिश्चित करने की आवश्यकता है कि आप उसी अनुरोध को बाद के अनुरोध में संरक्षित करें। यदि आप पहले से ही JSF 2.0 पर हैं, तो बीन @ViewScoped को घोषित कर दें। यदि आप JSF 1.x पर हैं, तो आपको या तो सत्र के दायरे में बीन डालकर या बीन कन्स्ट्रक्टर में सूची लोड करने की आवश्यकता है।


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -