Java 如何设置默认项,例如;请选择一个“;在p:selectOneMenu中选择数据库中的对象?
我有一个p:SelectOne菜单,里面装满了数据库中的对象。首先打开页面时, selectOneMenu的默认项必须是字符串类型中的“请选择一个”(selectOneMenu的其他项为对象类型)。首先加载页面时,数据库中对象类型中的一个数据显示为默认值。我不希望这样。如何将p:selectOneMenu中的“请选择一个”这样的默认项与数据库中的对象一起设置Java 如何设置默认项,例如;请选择一个“;在p:selectOneMenu中选择数据库中的对象?,java,primefaces,Java,Primefaces,我有一个p:SelectOne菜单,里面装满了数据库中的对象。首先打开页面时, selectOneMenu的默认项必须是字符串类型中的“请选择一个”(selectOneMenu的其他项为对象类型)。首先加载页面时,数据库中对象类型中的一个数据显示为默认值。我不希望这样。如何将p:selectOneMenu中的“请选择一个”这样的默认项与数据库中的对象一起设置 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
template="layout.xhtml">
<ui:define name="pageContent">
<h:form id="silYapilandirmaForm" prependId="true">
<p:panel id="silYapilandirmaPanel" header="#{etiketler.silYapilandirma}" collapsed="true" toggleable="true" >
<p:tabView id="tabView" dynamic="false" activeIndex="0">
<p:tab title="#{etiketler.silIslemleri}" id="silIslemleriTab">
<p:outputPanel id="silIslemleriPanel">
<h:panelGrid id="eshsSecPanelGrid" columns="3" >
<h:outputText value="#{etiketler.eshsSertifika}:*" />
<p:selectOneMenu id="silYapilandirmaSelect" value="#{silYapilandirmaView.seciliEshsSertifika}" effect="fade" effectDuration="100" style="width: 205px" converter="#{entityConverter}">
<f:selectItem itemLabel="Please select one" itemValue="#{null}"/>
<f:selectItems value="#{silYapilandirmaView.eshsSertifikaList}" var="eshsSertifika"
itemLabel="#{eshsSertifika.sertifikaKodAdi}" itemValue="#{eshsSertifika}" />
<p:ajax process="@this" event="change" update="eshsSecPanelGrid,silIslemleriPanel" listener="#{silYapilandirmaView.addListener()}" />
</p:selectOneMenu>
<h:outputText value=""/>
<h:outputText value="#{etiketler.eshsSertifika}:" />
<h:inputText value="#{silYapilandirmaView.seciliEshsSertifika.sertifikaKodAdi}" disabled="true" size="30"/>
<h:outputText value=""/>
<h:outputText value="#{etiketler.silUretimBaslangicSaati}:* " />
<p:inputMask id="silUretimBaslangicSaatiInputMask" value="#{silYapilandirmaView.seciliEshsSertifika.silUretimBaslangicSaati}" mask="99:99:99" size="30" />
<p:message for="silUretimBaslangicSaatiInputMask" display="text" />
<h:outputText value="#{etiketler.silUretimBaslangicPeriyodu}:* " />
<p:inputMask maxlength="4" mask="99?99" id="periyotInputMask" size="30" value="#{silYapilandirmaView.seciliEshsSertifika.silUretimPeriyodu}" >
</p:inputMask>
<p:message for="periyotInputMask" display="text" />
</h:panelGrid>
</p:outputPanel>
</p:tab>
</p:tabView>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
当页面加载时,“请选择一个”在p:selectOneMenu中可见,但我不想使“seciliesSSertifika”对象等于null,是否还有其他人提出其他解决方案 试试这个。获取要设置第一项的对象。(本例中我得到列表中的第一个对象) java
EshsSertifika firstItem = eshsSertifikaList.get(0);
xhtml
您需要将此文本放在列表和对象的第一个位置。没有价值。您也可以这样做:但我希望在加载页面时,它会显示在selectOneMenu中
public void init() {
seciliEshsSertifika=new EshsSertifika();
eshsSertifikaList = (List) commonService.hepsiniGetir(EshsSertifika.class);
seciliEshsSertifika = eshsSertifikaList.get(eshsSertifikaList.size() - 1);
seciliEshsSertifika=null;
}
EshsSertifika firstItem = eshsSertifikaList.get(0);
<f:selectItem itemLabel="#{eshsSertifika.firstItem.sertifikaKodAdi}" itemValue="#{eshsSertifika.firstItem}" />