我有一个带选择的数据表和一个命令按钮。问题是如果用户没有从datatable中选择任何项目并单击按钮,selectedItem对象将返回null。我认为datatable的选择事件在我的commandbutton的action方法之后运行。
我想做的是; 如果用户没有从datatable中选择任何项目并单击该按钮,我将创建一个新的SelectedItem对象。但是在按钮的action方法运行后,datatable会将其更改为null。
<p:panel id="panel1">
<p:dataTable selection="#{myController.selectedItem}"
selectionMode="single"....
//some other stuff
</p:panel>
<p:panel id="panel2">
//some other stuff
<p:commandButton value="Create" action="myController.create"....
</p:panel>
我的控制器;
SelectedItem selectedItem = new SelectedItem();
public void create(){
selectedItem = new SelectedItem();
}
答案 0 :(得分:0)
你可以试试这个:
.xhtml
<p:dataTable var="result" selection="#{myController.selectedItem}"
selectionMode="single"....
<p:commandButton actionListener="#{myController.create()}">
<f:setPropertyActionListener value="#{result}" target="#{myController.selectedItem}" />
</p:commandButton>
.java
SelectedItem selectedItem = new SelectedItem();
public void create(){
selectedItem = new SelectedItem();
}