我有一个数据表,其中属性之一是字段Vigente。 Vigente是一个可能值为``是''或``否''的枚举。
在数据表中实现一个类型为oneSelectMenu的过滤器列,其中可能的值为All(默认为第一个声明的值),是和否。
有没有办法使默认值成为oneSelectMenu的第三个元素,在这种情况下,是吗?
枚举代码
public enum EnumVigente {
NO("No"),
YES("Yes");
private final String descricao;
private EnumVigente(String descricao) {
this.descricao = descricao;
}
public String getDescricao() {
return descricao;
}
}
bean代码
O bean dele é
@RequestScoped
@ManagedBean
public class EnumVigenteBean implements Serializable {
public EnumVigente[] getEnumVigentes() {
return EnumVigente.values();
}
public EnumVigente getEnumSim() {
return EnumVigente.SIM;
}
public EnumVigente getEnumNao() {
return EnumVigente.NAO;
}
}
xhtml代码
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/template.xhtml">
<ui:define name="conteudo" >
<h:form id="PaisListForm"
>
<p:dataTable id="tblPaises" value="#{paisBean.listaPais}" var="item"
selectionMode="single" selection="#{paisBean.pais}"
paginator="true"
paginatorPosition="bottom"
rowKey="#{item.id}"
rows="10"
rowsPerPageTemplate="10,20,30,40,50"
widgetVar="tabelaPais"
>
<f:facet name="header">
#{mensagem.listaPais}
</f:facet>
<p:ajax event="rowSelect" update="createButton viewButton editButton" />
<p:column sortBy="#{item.name}" filterBy="#{item.name}" filterMatchMode="contains">
<f:facet name="header">
<h:outputText value="#{mensagem.name}" />
</f:facet>
<h:outputText value="#{item.name}"/>
</p:column>
<p:column filterBy="#{item.vigente}"
headerText="#{mensagem.vigente}"
filterMatchMode="exact"
>
<f:facet name="filter">
<p:selectOneMenu id="selVigente" onchange="PF('tabelaPais').filter()" >
<f:selectItem itemLabel="All"
noSelectionOption="true" />
<f:selectItems value="#{enumVigenteBean.enumVigentes}" />
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{item.vigente}"/>
</p:column>
<f:facet name="footer">
<p:commandButton id="createButton" actionListener="#{paisBean.prepareCreate()}" icon="ui-icon-plus" value="#{mensagem.incluir}" action="/pais/create.xhtml" disabled="#{!perfilUsuarioTagAcessoBean.verificarPermissaoAcesso(permissoes.PAIS_CREATE)}"/>
<p:commandButton id="editButton" icon="ui-icon-pencil" value="#{mensagem.alterar}" action="/pais/update.xhtml" disabled="#{(empty paisBean.pais) || (!perfilUsuarioTagAcessoBean.verificarPermissaoAcesso(permissoes.PAIS_UPDATE))}"/>
<p:commandButton id="viewButton" icon="ui-icon-search" value="#{mensagem.consultar}" update=":PaisViewForm" oncomplete="PF('PaisViewDialog').show()" disabled="#{empty paisBean.pais}"/>
</f:facet>
</p:dataTable>
<h:commandLink>
<p:graphicImage library="imagens" name="excel.png" />
<p:dataExporter type="xls" target="tblPaises" fileName="tabelaPais" pageOnly="true"/>
</h:commandLink>
<h:commandLink>
<p:graphicImage library="imagens" name="pdf.png" />
<p:dataExporter type="pdf" target="tblPaises" fileName="tabelaPais" pageOnly="true" />
</h:commandLink>
</h:form>
<ui:include src="view.xhtml"/>
</ui:define>
</ui:composition>
</html>
我需要oneSelectMenu id =“ selVigente”才能具有初始值是