CommandLink marche pas dans Datatable
Salut tout le monde,
j'essaye en vain de faire fonctionner un lieen commandLink dans un datatable mais rien a faire :aie:
lorsque je sors ce meme lien du datatable il fonctionne tres bien pourtant
il y a bien un <h:form> dans ma page et y en a aucun imbriqué (probleme deja eut)
je ne vois pas d'ouvrir l'erreur peut provenir, ma methode du bean n'est jamais appelé
Auriez-vous une idée
ps : JSF+Facelet
Ma page .xhtml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/templates/template.xhtml">
<ui:define name="contenu">
<h:messages/>
<h:outputText value="Les Posts"/>
<h:form>
<h:dataTable value="#{postBean.dataModelPost}" var="item" width="100%" headerClass="list-header" binding="#{postBean.datable}">
<h:column>
<f:facet name="header">
<h:outputText value="Titre"/>
</f:facet>
<h:commandLink id="bt" action="#{postBean.initDetails}" >
<h:outputText value="#{item.title}" />
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Created at / Updated at"/>
</f:facet>
<h:outputText value="Created at #{item.creationdate} by #{item.author.username}"/>
<h:outputText value="Updated at #{item.lastmodificationdate}" rendered="#{item.lastmodificationdate ne null}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Content"/>
</f:facet>
<h:outputText value="#{item.content}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Categories"/>
</f:facet>
<h:outputText value="Categories : "/>
<h:dataTable var="categorie" value="#{item.categories}">
<h:outputText value="#{categorie.name}"/>
</h:dataTable>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Action"/>
</f:facet>
<h:commandLink value="Edit" rendered="#{item.author.id eq userBean.user.id}"/>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
</html> |
Mon bean :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
@ManagedBean
@SessionScoped
public class PostBean {
..........................
.............
private DataModel dataModelPost = new ListDataModel();
private List<Post> postsItems;
private Post post = new Post();
private Post postSelected;
private UIData datable;
/** Creates a new instance of PostBean */
public PostBean() {
}
public String init(){
if(postsItems == null){
postsItems = new ArrayList<Post>();
}
postsItems = postFacade.findAllPost();
if(postsItems != null && !postsItems.isEmpty()){
dataModelPost.setWrappedData(postsItems);
}
return "success";
}
/**
* Methode permettant d'afficher le detail d'un post
* @return
*/
public String initDetails(){
System.out.println("-- initDetails - ");
setDetail(true);
return "success";
}
public DataModel getDataModelPost() {
return dataModelPost;
}
public void setDataModelPost(DataModel dataModelPost) {
this.dataModelPost = dataModelPost;
}
public UIData getDatable() {
return datable;
}
public void setDatable(UIData datable) {
this.datable = datable;
}
} |