récupérer l'id envoyé par bean
Bonjour,
J'aimerais afficher une datatable contenant une liste d'agents sélectionnables, puis après validation, je veux récupérer l'id de l'agent sélectionné.
voici mon code, pour la page jsf
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <h:dataTable value="#{agentController.items}" var="item" id="datalist" >
<h:column>
<h:commandLink action="#{agentController.view(list.id)}" >
<div class="afficheritem">
<h:outputText value="#{item.nom} " style="font-size: 18px;font-weight : bold; text-decoration: none;" />
<br/>
<h:outputText style="color:black;font-style: normal; " value="#{list.email}"/>
</div>
</h:commandLink>
</h:column>
</h:dataTable> |
pour le bean j'ai ajouté la fonction suivante
Code:
1 2 3 4 5 6 7 8 9 10
| public String view(String value) throws IOException, JAXBException {
FacesContext context;
context = FacesContext.getCurrentInstance();
Map map = context.getExternalContext().getRequestParameterMap();
String title1;
title1 = (String) map.get("title");
return "ViewAgent.xhtml?faces-redirect=true";
} |
pour le bean de la page "Viewagent.xhtml" , je sais pas comment faire pour récupérer l'id.
Quelqu'un saurait-il m'indiquer comment faire ?
Merci d'avance pour votre aide.
récupérer l'id envoyé par bean
je veux savoir comment récupérer l'id dans le bean de l'autre page "ViewAgent".
et merci ;)
récupérer l'id envoyé par bean
bon si on fait une petite récapitulation :
dans la page jsf, je met
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <h:dataTable value="#{agentController.items}" var="item" id="datalist" >
<h:column>
<h:commandLink action="#{agentController.view(item.idAgent)}" >
<div class="afficheritem">
<h:outputText value="#{item.nom} " style="font-size: 18px;color:blueviolet;font-weight : bold; text-decoration: none;" />
<br/>
</div>
<f:setPropertyActionListener value="#{item}" target="#{agentController.selectedAgent}" />
</h:commandLink>
</h:column>
</h:dataTable> |
et pour le bean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public String view(String value) throws IOException, JAXBException {
FacesContext context;
context = FacesContext.getCurrentInstance();
context.getExternalContext().getFlash().put("unkey",value);
return "ViewAgent.xhtml?faces-redirect=true";
}
private List selectedAgent;
public void setSelectedAgent(List selectedAgent){
this.selectedAgent=selectedAgent;
}
public List getSelectedAgent(){
return selectedAgent;
} |
après pour la page ViewAgent.xhtml
Code:
1 2 3
| <f:metadata>
<f:event type="preRenderView" listener="#{ViewBean.initMethode}"/>
</f:metadata> |
et pour son bean "ViewBean" je met la fonction
Code:
1 2 3 4 5 6
| public String initMethode(){
String id= (String)FacesContext.getCurrentInstance().getExternalContext().getFlash().get("unkey" );
return id;
} |
Mais une autre erreur apparait que Cannot convert jpa.entities.Agent[ idAgent=1e ] of type class jpa.entities.Agent to interface java.util.List :cry:
Help.