我有一個加載BD列表的selectOneMenu用於對象,而不是內容,調試也已經是所有步驟,除了它顯示了selectOneMenu用於值時是正確的。在頁面上出現對象名稱「JanelaPortabilidade @ 7437」,不像字符串。selectOneMenu用於只出現應該
我的代碼:
public List<SelectItem> listarHoraJanela(DateSelectEvent event) {
dataF = event.getDate();
Calendar dataAux = new GregorianCalendar();
dataAux.setTime(dataF);
//Corrigir
if (listaHoraJanela == null) {
listaHoraJanela = new ArrayList<JanelaEAPortabilidade>();
listaHoraJanela = consultaJPortabilidade.listarHoraJanela(dataAux);
listSelectHoraJ.add(new SelectItem("", ""));
for (JanelaEAPortabilidade horaJ : listaHoraJanela) {
String dataFormat = String.format("%02d",horaJ.horIniJanela.get(Calendar.HOUR_OF_DAY));
System.out.println(dataFormat);//So here is ok, print in console correct string
listSelectHoraJ.add(new SelectItem(horaJ.getIdtJanela(),dataFormat));
}
}
XHTML:
<h:outputText value="Hora da Janela:" for="horaJanela" />
<h:selectOneMenu value="#{bean.codHoraJanela}" id="horaJanela"
rendered="#{bean.type == 'Fixo'}" >
<f:selectItems value="#{bean.listaHoraJanela}" />
什麼可以嗎?我肯定錯過了什麼。
謝謝!
我可以用來顯示。現在如何獲得選定的dataFormat?選中的horaJ.getIdtJanela()可以用codHoraJanela獲得,但不知道如何獲取選中的dataFormat。 –
Deb
我想你堅持列表listSelectHoraJ,直到用戶做出選擇,然後迭代它直到你找到他們選擇的代碼。然後你可以獲得標籤。由於您的列表似乎超出了範圍,因此您將需要將您的聲明移至某個在整個生命週期中持續存在的地方。整個SelectItem可能回到事件或上下文的某處,但我不知道。或者,由於dataFormat無論如何都是從horaJ.horIniJanela計算出來的,您可以根據用戶選擇的哪個ID重新計算。 – SteveS
我解決這種方式: '代碼 爲(JanelaEAPortabilidade horaJ:listaHoraJanela)(。horaJ.getIdtJanela()等於(codHoraJanela)){ 如果{ HoraFormat字符串=的String.format( 「%02D」 horaJ.horIniJanela。 get(Calendar.HOUR_OF_DAY)); DateFormatAux Integer = Integer.parseInt(horaFormat); calendarAux.add(Calendar.HOUR_OF_DAY,dateFormatAux); parametro.setDateF(calendarAux); } }' – Deb