Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSF2.0中使用对话框编辑Datatable_Jsf_Jsf 2_Primefaces - Fatal编程技术网

在JSF2.0中使用对话框编辑Datatable

在JSF2.0中使用对话框编辑Datatable,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我目前正在JSF2.0中运行我的web应用程序,它也在使用Primefaces 2.2RC2 我知道primefaces使您能够拥有可编辑的行,但对于我的项目,我更希望用户单击表中的commandButton,显示一个对话框,其中预先填充了特定的行值,并且用户可以通过这种方式编辑行 我实现此功能的唯一方法是在包含commandButton的列中,将该行内容作为参数传递,如下例所示: <p:dataTable var="car" value="#{myBean.cars}" id="carL

我目前正在JSF2.0中运行我的web应用程序,它也在使用Primefaces 2.2RC2

我知道primefaces使您能够拥有可编辑的行,但对于我的项目,我更希望用户单击表中的commandButton,显示一个对话框,其中预先填充了特定的行值,并且用户可以通过这种方式编辑行

我实现此功能的唯一方法是在包含commandButton的列中,将该行内容作为参数传递,如下例所示:

<p:dataTable var="car" value="#{myBean.cars}" id="carList">  
   <h:column>
         <h:inputText value="#{car.id}" style="width:100%"/> 
   </h:column>

   <h:column>
        <h:inputText value="#{car.name}" style="width:100%"/> 
   </h:column>
   <h:column>
        <h:commandButton actionListener=#{myBean.updateRow} onsuccess="editCardDialog.show()" >
           <f:param name="carId" value=#{car.id} />
           <f:param name="carName" value=#{car.name} />
        </h:commandButton>
    </h:column>

    ...
</p:dataTable>
然后在对话框中,我将只引用那些临时变量

    <p:dialog>
        <h:inputText value=#{myBean.tempCarId} />
        <h:inputText value=#{myBean.tempCarName} />
    </p:dialog>


我不确定这样做是否正确。我的直觉告诉我这不是因为必须在Bean中创建临时变量以便将它们传递给对话框,这似乎是非常多余的。有人知道一种更简洁的方法吗?这样我就不必在我的支持bean中创建一百万个临时变量了

只需将下面对话框中的OutputExt替换为InputExt即可

    <p:dialog>
        <h:inputText value=#{myBean.tempCarId} />
        <h:inputText value=#{myBean.tempCarName} />
    </p:dialog>