【发布时间】:2014-09-06 20:40:28
【问题描述】:
我有一个实体,其中包含带有@ElementCollection 注释的属性。此属性是我添加的电话(电话)的字符串列表。我在 primefaces 的数据表中显示此电话。
如何删除选中行的电话?
我正在尝试这个。
实体
@Entity
public class UnidadeEscolar implements Serializable{
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@NotNull @Size(min=5, message="Informe o nome da unidade escolar")
@Column(unique=true)
private String nome;
private String departamento;
@Embedded
private Endereco endereco;
@ElementCollection
@JoinTable(name="telefones_ue", joinColumns=@JoinColumn(name="ue_id"))
private List<String> telefones = new ArrayList<String>();
/** adiciona telefones */
public void addTelefone(String tel){
telefones.add(tel);
}
/** remove telefone */
public void removeTelefone(int row){
telefones.remove(row);
}
托管 Bean
@ManagedBean
@ViewScoped
public class UnidadeEscolarMB implements Serializable{
private static final long serialVersionUID = 1L;
private UnidadeEscolar bean;
private GenericDAO<UnidadeEscolar> dao;
private List<UnidadeEscolar> unidades = null;
private String telefone = "";
/** add telphone to entity */
public void addTelefones(){
//System.out.println(telefone);
bean.addTelefone(telefone);
telefone = "";
}
/** remove telphone of entity */
public void removeTelefone(){
bean.getTelefones().remove(telefone);
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
xhtml
<p:tab title="Contato">
<p:fieldset legend="Telefones">
<p:dataTable id="tabelaTelefones" widgetVar="datalistTelefones"
value="#{unidadeEscolarMB.bean.telefones}" var="fone"
emptyMessage="Nenhum registro encontrado"
selectionMode="single"
selection="#{unidadeEscolarMB.telefone}"
rowKey="#{unidadeEscolarMB.bean.id}"
>
<p:column headerText="Telefone">
<h:outputText value="#{fone}"/>
</p:column>
</p:dataTable>
<p:commandButton actionListener="#{unidadeEscolarMB.removeTelefone()}" value="-" update="tabelaTelefones"/>
</p:tab>
如何删除在 dataTable 中选择的电话?
【问题讨论】:
标签: jsf primefaces