2012-06-01 18 views
5

तो मैं डेटाबेस में डिलीवरी जोड़ने के लिए ड्रॉपडाउन मेनू बनाने का प्रयास करने के लिए सीम का उपयोग कर रहा हूं। मैं डेटाबेस से कौन सा कर्मचारी डिलीवरी कर रहा हूं चुनने के लिए ड्रॉप डाउन मेनू का उपयोग कर रहा हूं। मेनू डेटाबेस में सभी कर्मचारियों को ठीक से लोड करता है लेकिन जब मैं एक का चयन करता हूं और जोड़ता हूं, तो मुझे 'नल कनवर्टर' के लिए "रूपांतरण त्रुटि सेटिंग मान '(कर्मचारी के लिए हैश' त्रुटि मिलती है।ड्रॉपडाउन मेनू "नल कनवर्टर 'के लिए" रूपांतरण त्रुटि सेटिंग मान' '

यहां कोड है ड्रॉप-डाउन मेनू:।

<my:dropdown label="Employee ID" id="emp" value="#{deliveryPort.emp}" required="false"> 
        <f:selectItem itemValue="#{null}" itemLabel="Selct One"/> 
        <s:selectItems value="#{deliveryPort.empList}" var="emp" label="# {emp.employeeId} #{ emp.nameFirst}"/> 
       </my:dropdown> 

किसी भी मदद की बहुत सराहना की जाएगी धन्यवाद

उत्तर

7

आप 2 बातें करना चाहिए इस त्रुटि से बचने के लिए:

  1. सुनिश्चित करें कि आपके वर्ग बनाने empequals() और hashCode()
  2. लागू कर रहा है एक कनवर्टर का उपयोग करें यह समर्थन सेम

BalusC को पार करने से पहले आपके चयनित मूल्य कन्वर्ट करने के लिए एक अच्छा tutorial कन्वर्टर्स और उन्हें कैसे उपयोग करने के बारे में लिखा था।

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद। यह एक अद्भुत लेख भी है। – user1423793

0

मैंने कनवर्टर और बराबर() & हैशकोड() को कर्मचारी वर्ग (एमएमपी की कक्षा) में @flash के उत्तर के अनुसार लागू किया। एक्सएचटीएमएल की

भाग:

<my:dropdown label="Employee ID" id="emp" value="#{deliveryPort.emp}" required="false"> 
    <f:selectItem itemValue="#{null}" itemLabel="Selct One"/> 
    <s:selectItems value="#{deliveryPort.empList}" var="emp" label="# {emp.employeeId} #{ emp.nameFirst}"/> 
    <f:converter converterId="empConverter" /> 
</my:dropdown> 

EmployeeConverter कक्षा:

public boolean equals(Object other) 
{ 
    return other instanceof Employee && (employeeId != null) ? employeeId.equals(((Employee) other).employeeId) : (other == this); 
} 

public int hashCode() 
{ 
    return employeeId != null ? this.getClass().hashCode() + employeeId.hashCode() : super.hashCode(); 
} 

public String toString() 
{ 
    return "Employee[" + employeeId + "," + nameFirst + "]"; 
} 

मैं था:

package mypackage.converters; 

import javax.faces.component.UIComponent; 
import javax.faces.context.FacesContext; 
import javax.faces.convert.Converter; 
import javax.faces.convert.FacesConverter; 

@FacesConverter("empConverter") 
public class EmployeeConverter implements Converter 
{ 

    public Object getAsObject(FacesContext context, UIComponent component, String value) 
    { 
     return value; 
    } 

    public String getAsString(FacesContext context, UIComponent component, Object value) 
    { 
     return value.toString(); 
    } 

} 

कर्मचारी वर्ग का हिस्सा (रोजगार के वर्ग, माना जाता है EmployeeID स्ट्रिंग है) एक समान समस्या है। यह मेरे लिए काम किया।

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