如何使用jsf primefaces编辑数据表中的行

如何使用jsf primefaces编辑数据表中的行,jsf,jakarta-ee,primefaces,Jsf,Jakarta Ee,Primefaces,我是jsf Primefaces的初学者。我对primefaces数据表有问题。 当我选择一行以在对话框组件中查看它时,不会显示任何内容 <center> <p:panel id="panel" header="Gestion Points Services * Affichage *" > <h:form id="my

我是jsf Primefaces的初学者。我对primefaces数据表有问题。 当我选择一行以在对话框组件中查看它时,不会显示任何内容

           <center>
                <p:panel id="panel" 
                         header="Gestion Points Services * Affichage *"  >
                    <h:form id="myform">
                        <center>

                            <p:dataTable id="lesPS" var="ps" 
                                         value="#{listerPointSBean.listePointservice}"
                                         rowKey="#{ps.idpointservice}"
                                         selection="#{listerPointSBean.selectedPointservice}"
                                         selectionMode="single"
                                         emptyMessage="Aucuune Info dans la base" 
                                         paginator="true" rows="12"  
                                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                         rowsPerPageTemplate="5,10,15"

                                         >

                                <f:facet name="header">
                                    <p:outputPanel>
                                        <h:outputText value="Search all fields:" />
                                        <p:inputText id="globalFilter" style="width:150px" />
                                    </p:outputPanel>
                                </f:facet>

                                <f:facet name="header">  
                                    Afficher les Points Services
                                </f:facet>

                                <p:ajax event="rowSelect"   />  

                                <p:column headerText="ID" filterBy="#{ps.idpointservice}"
                                          sortBy="#{ps.idpointservice}">
                                    <f:facet name="header">
                                        <h:outputText value="ID" />
                                    </f:facet>
                                    <h:outputText value="#{ps.idpointservice}" />
                                </p:column>

                                <p:column headerText="Nom" filterBy="#{ps.nom}"
                                          sortBy="#{ps.nom}">
                                    <f:facet name="header">
                                        <h:outputText value="nom" />
                                    </f:facet>
                                    <h:outputText value="#{ps.nom}" />
                                </p:column>

                                <p:column headerText="adresse" filterBy="#{ps.adresse}"
                                          sortBy="#{ps.adresse}">
                                    <f:facet name="header">
                                        <h:outputText value="adresse" />
                                    </f:facet>
                                    <h:outputText value="#{ps.adresse}" />

                                </p:column>
                                <p:column headerText="email" filterBy="#{ps.email}"
                                          sortBy="#{ps.email}">
                                    <f:facet name="header">
                                        <h:outputText value="email" />
                                    </f:facet>
                                    <h:outputText value="#{ps.email}" />

                                </p:column>
                                <p:column headerText="tel" filterBy="#{ps.telephone}"
                                          sortBy="#{ps.telephone}">
                                    <f:facet name="header">
                                        <h:outputText value="tel" />
                                    </f:facet>
                                    <h:outputText value="#{ps.telephone}" />

                                </p:column>

                                <p:column headerText="latitude" filterBy="#{ps.latitude}"
                                          sortBy="#{ps.latitude}">
                                    <f:facet name="header">
                                        <h:outputText value="latitude" />
                                    </f:facet>
                                    <h:outputText value="#{ps.latitude}" />

                                </p:column>

                                <p:column headerText="longitude" filterBy="#{ps.longitude}"
                                          sortBy="#{ps.longitude}">
                                    <f:facet name="header">
                                        <h:outputText value="longitude" />
                                    </f:facet>
                                    <h:outputText value="#{ps.longitude}" />

                                </p:column>

                                <p:column headerText="Ville" filterBy="#{ps.ville}"
                                          sortBy="#{ps.ville}">
                                    <f:facet name="header">
                                        <h:outputText value="ville" />
                                    </f:facet>
                                    <h:outputText value="#{ps.ville}" />

                                </p:column>

                                <p:column headerText="Gouv" filterBy="#{ps.gouvernat}"
                                          sortBy="#{ps.gouvernat}">
                                    <f:facet name="header">
                                        <h:outputText value="gouv" />
                                    </f:facet>
                                    <h:outputText value="#{ps.gouvernat}" />

                                </p:column>



                                <p:column headerText="type" filterBy="#{ps.type}"
                                          sortBy="#{ps.type}">
                                    <f:facet name="header">
                                        <h:outputText value="type" />
                                    </f:facet>
                                    <h:outputText value="#{ps.type}" />

                                </p:column>

                                 <p:column>

                                 <p:commandButton style="margin-right:10%" id="affichButton" 
                                                 icon="ui-icon-search" 
                                                 actionListener="#{listerPointSBean.test}"      oncomplete="psDialog.show()" />

                                </p:column>



                            </p:dataTable>



                            <p:dialog id="psdialog" header="ps Detail" widgetVar="psDialog"
                                      resizable="false" width="500" height="350" showEffect="clip"
                                      hideEffect="fold">

                                <h:panelGrid id="display" columns="2" cellpadding="4">

                                    <h:outputText value="nom:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.nom}" />
                                    <h:outputText value="Adresse:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.adresse}" />
                                    <h:outputText value="Email:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.email}" />
                                    <h:outputText value="Tel:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.telephone}" />
                                    <h:outputText value="latitude:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.latitude}" />

                                    <h:outputText value="Longitude:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.longitude}" />
                                    <h:outputText value="Ville:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.ville}" />
                                    <h:outputText value="Gouv:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.gouvernat}" />
                                    <h:outputText value="Zip:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.zip}" />
                                    <h:outputText value="type:" />
                                    <h:outputText
                                        value="#{listerPointSBean.selectedPointservice.type}" />


                                </h:panelGrid>


                            </p:dialog>
                    </h:form>
                </p:panel>
            </center>
                ` 

附加积分服务
` 
listerPointSBean托管bean如下所示:

@ManagedBean
@ViewScoped
public class ListerPointSBean implements Serializable {

private static final long serialVersionUID = 1L;
@EJB
PointserviceFacade bean;
List<String> Pointservices;
List<Pointservice> listePS;

private Pointservice selectedPointservice;

/**
 * @return the Pointservices
 */
public List<String> getPointservices() {
    listePS = bean.findAll();
    return Pointservices;
}

/**
 * @param Pointservices the Pointservices to set
 */
public void setPointservices(List<String> Pointservices) {
    this.Pointservices = Pointservices;
}

/**
 * @return the listePointservice
 */
public List<Pointservice> getListePointservice() {
    listePS = bean.findAll();
    return listePS;
}

/**
 * @param listePointservice the listePointservice to set
 */
public void setListePointservice(List<Pointservice> listePointservice) {
    this.listePS = listePointservice;
}

/**
 * @return the selectedPointservice
 */
public Pointservice getSelectedPointservice() {
    if(selectedPointservice ==null){
        selectedPointservice=new Pointservice();
    }

    return selectedPointservice;
}

/**
 * @param selectedPointservice the selectedPointservice to set
 */
public void setSelectedPointservice(Pointservice selectedPointservice) {
    this.selectedPointservice = selectedPointservice;
}

public void delete() {

    bean.remove(selectedPointservice);
}


public void editps(){
    bean.edit(selectedPointservice);
@ManagedBean
@视域
公共类ListerPointSBean实现可序列化{
私有静态最终长serialVersionUID=1L;
@EJB
PointServiceFacadeBean;
列出服务;
列出清单;
私有点服务selectedPointservice;
/**
*@返回Pointservices
*/
公共列表getPointservices(){
listps=bean.findAll();
返回点服务;
}
/**
*@param Pointservices要设置的Pointservices
*/
公共void设置点服务(列出点服务){
this.Pointservices=Pointservices;
}
/**
*@返回ListPointService
*/
公共列表GetListPointService(){
listps=bean.findAll();
返回列表;
}
/**
*@param ListPointService要设置的ListPointService
*/
public void setListPointService(列表ListPointService){
this.listePS=listePointservice;
}
/**
*@返回selectedPointservice
*/
公共点服务getSelectedPointservice(){
如果(selectedPointservice==null){
selectedPointservice=新的Pointservice();
}
返回selectedPointservice;
}
/**
*@param selectedPointservice要设置的selectedPointservice
*/
公共无效集合selectedPointservice(Pointservice selectedPointservice){
this.selectedPointservice=selectedPointservice;
}
公共作废删除(){
删除(selectedPointservice);
}
公共图书馆{
编辑(selectedPointservice);
}

我用的是PrimeFaces3.5。
你能帮我吗?谢谢。

你犯了一些错误。首先是@tiny评论的 其中的actionListener中指定的ListerPointSBean中的test()方法 "

在bean中,创建一个test()方法,在其中设置要在对话框中显示的属性值

调用对话框的另一种正确方法是

 oncomplete="PF('psDialog').show()"

在ajax rowSelect事件中,您需要在p:对话框中更新h:panelGrid

  <p:ajax event="rowSelect" update=":myform:display" oncomplete="psDialog.show()"/>

您是否尝试使用Firebug/other或设置p:dialog AppendToBody=true来检查它?
标记已被弃用