Bonjour les amis
aidez moi svp
J'ai deux tables "Personnel" et "Unite" j'ai une clé étrangere dans la table Personnel "id_unite"
dans le formulaire d'ajout de personnel j'ai une liste déroulante "SelectOneMenu" qui contient le nom des unités.
j'arrive à afficher les nom des unités à partir de la table "Unité" mais le problème j'arrive pas à recuperer la valeur selectionnée
dans la liste déroulante et de stocker son id dans la table personnel, après des recherche sur Internet , il faut utiliser un converter
mais j'arrive pas à récuperer cette valeur selectionner.
Voici la méthode dans mon "PersonnelBean" qui me permet de récupérer la liste des unités
//***************************
@SuppressWarnings("unchecked")
public List<Unite> complete2 () {
unite2 = uniteDAO.findWithNamedQuery("Unite.populateUnite");
return unite2;
}
//**************************************
et mon converter
//************************************************
package util;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import model.Unite;
@FacesConverter(value="uniteConverter", forClass=Unite.class)
public class UniteConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
List<Unite> unite2;
unite2 = new ArrayList<Unite>();
if (submittedValue.trim().equals("")) {
return null;
} else {
try {
int number = Integer.parseInt(submittedValue);
for (Unite p : unite2) {
if (p.getId_unite() == number) {
return p;
}
}
} catch(NumberFormatException exception) {
throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid player"));
}
}
return null;
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
if (value == null || value.equals("")) {
return "";
} else {
return String.valueOf(((Unite) value).getId_unite());
}
}
}
//***************************************************
ainsi mon code de selectOneMenu dans la page jsf
//*********************
<h:outputLabel for="id_unite" value="Nom d'unité:" />
<h:selectOneMenu value="#{personnelBean.newPersonnel.id_unite}">
<f:selectItems value="#{personnelBean.complete2()}" var="c"
itemLabel="#{c.nom_unite}" itemValue="#{c.id_unite}" converter="uniteConverter" />
<f:converter converterId="uniteConverter" />
</h:selectOneMenu>
//***********************************
Partager