SelectOneMenu de meses do Ano

11 respostas
R

Boa tarde galera, tudo certo?? Bem, na minha aplicação tenho um SelectOneMenu dos meses do ano para filtrar os aniversariantes do mes que a pessoa escolher. “Passei” para os mesmos valores de 0 a 11. Porém, eu tenho um itemLabel SELECIONE e estou tendo que passar no itemValue 12. O problema é que daí o SELECIONE fica por ÚLTIMO…Abaixo o xhtml:

<h:panelGrid columns="2" width="300">
                                    <p:selectOneMenu required="false" id="dtaNascimento" converter="sec" value="#{matriculaJsfBean.mesAtual}" filter="true" caseSensitive="false" filterMatchMode="contains" requiredMessage="Selecione o mês.">
                                        <f:selectItem itemLabel="Janeiro" itemValue="0"/>
                                        <f:selectItem itemLabel="Fevereiro" itemValue="1"/>
                                        <f:selectItem itemLabel="Março" itemValue="2"/>
                                        <f:selectItem itemLabel="Abril" itemValue="3"/>
                                        <f:selectItem itemLabel="Maio" itemValue="4"/>
                                        <f:selectItem itemLabel="Junho" itemValue="5"/>
                                        <f:selectItem itemLabel="Julho" itemValue="6"/>
                                        <f:selectItem itemLabel="Agosto" itemValue="7"/>
                                        <f:selectItem itemLabel="Setembro" itemValue="8"/>
                                        <f:selectItem itemLabel="Outubro" itemValue="9"/>
                                        <f:selectItem itemLabel="Novembro" itemValue="10"/>
                                        <f:selectItem itemLabel="Dezembro" itemValue="11"/>
                                        <f:selectItem itemLabel="SELECIONE " itemValue="12"/>
                                    </p:selectOneMenu>
                                </h:panelGrid>

No meu Bean faço o seguinte:

private int mesAtual = 12;
 public void filtraAniversariantesDoMes() {
        int mesNascimentoAluno;
        ANIVERSARIANTES2.clear();
        ANIVERSARIANTES.clear();
        ANIVERSARIANTES = ms.listaAniversariantesRelatorio(montaParametrosAniversariantes());
        if (mesAtual == 12) {
            ANIVERSARIANTES2.addAll(ANIVERSARIANTES);
        } else {
            for (Iterator<Matricula> it = ANIVERSARIANTES.iterator(); it.hasNext();) {
                Matricula matricula = it.next();
                Date dataDeNascimentoAluno = matricula.getAluno().getDataNascimento();
                mesNascimentoAluno = dataDeNascimentoAluno.getMonth();
                if (mesNascimentoAluno == mesAtual) {
                    ANIVERSARIANTES2.add(matricula);
                }
            }
        }
    }

Se alguém puder ajudar e souber como posso solucionar esse problema para conseguir deixar o itemLabel SELECIONE por PRIMEIRO…Eu agradeceria mto…Vlw

11 Respostas

R

Alguém poderia ajudar??? Se alguém puder dar uma mão, agradeceria mto…Vlw

R

Bom dia galera, alguém podia dar uma ajuda?? Vlw.

R

Já tentou colocar ele em primeiro lugar na tela?

R

Bom dia Rodrigo. Bem, já tentei sim… o filtro em si está funcionando, porém, como janeiro começa por 0 (ZERO) e vai até dezembro(11) pensei em colocar o SELECIONE como 12…Mas não consegui colocar ele como primeiro.
Tentei também alterar esses valores de janeiro a dezembro, ou seja, começar de janeiro ( iniciar valor com 1) e dezembro ( terminar com valor 12)… Mas, até o momento não consegui…Teria alguma ideia??
Vlw por estar ajudando…Abc

D

Bom dia caro amigo

Você pode fazer assim:

<f:selectItem itemLabel="SELECIONE " itemValue="12"/> 
<f:selectItem itemLabel="Janeiro" itemValue="0"/>  
<f:selectItem itemLabel="Fevereiro" itemValue="1"/>  
<f:selectItem itemLabel="Março" itemValue="2"/>  
<f:selectItem itemLabel="Abril" itemValue="3"/>  
<f:selectItem itemLabel="Maio" itemValue="4"/>  
<f:selectItem itemLabel="Junho" itemValue="5"/>  
<f:selectItem itemLabel="Julho" itemValue="6"/>  
<f:selectItem itemLabel="Agosto" itemValue="7"/>  
<f:selectItem itemLabel="Setembro" itemValue="8"/>  
<f:selectItem itemLabel="Outubro" itemValue="9"/>  
<f:selectItem itemLabel="Novembro" itemValue="10"/>  
<f:selectItem itemLabel="Dezembro" itemValue="11"/>

Testei aqui e funcionou!

Espero ter ajudado.

R

Além disso, se eu colocar o TODOS com valor 12 no início…aparece o seginte erro:

SEVERE: Index: 12, Size: 4
java.lang.IndexOutOfBoundsException: Index: 12, Size: 4
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at com.systempro.sapiweb.ui.converter.ConverterStorageBean.getEntity(ConverterStorageBean.java:33)
	at com.systempro.sapiweb.ui.converter.SimpleEntityConverter.getAsObject(SimpleEntityConverter.java:53)
	at org.primefaces.renderkit.SelectRenderer.isSelected(SelectRenderer.java:55)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeOption(SelectOneMenuRenderer.java:360)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeSelectItems(SelectOneMenuRenderer.java:333)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeInput(SelectOneMenuRenderer.java:114)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:91)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:65)
 /// MAIS LINHAS DE ERROS
R

dlsilva1812:
Bom dia caro amigo

Você pode fazer assim:

<f:selectItem itemLabel="SELECIONE " itemValue="12"/> 
<f:selectItem itemLabel="Janeiro" itemValue="0"/>  
<f:selectItem itemLabel="Fevereiro" itemValue="1"/>  
<f:selectItem itemLabel="Março" itemValue="2"/>  
<f:selectItem itemLabel="Abril" itemValue="3"/>  
<f:selectItem itemLabel="Maio" itemValue="4"/>  
<f:selectItem itemLabel="Junho" itemValue="5"/>  
<f:selectItem itemLabel="Julho" itemValue="6"/>  
<f:selectItem itemLabel="Agosto" itemValue="7"/>  
<f:selectItem itemLabel="Setembro" itemValue="8"/>  
<f:selectItem itemLabel="Outubro" itemValue="9"/>  
<f:selectItem itemLabel="Novembro" itemValue="10"/>  
<f:selectItem itemLabel="Dezembro" itemValue="11"/>

Testei aqui e funcionou!

Espero ter ajudado.


Bom dia…Abaixo postei o erro que está dando quando coloco o SELECIONE no IINICIO…poderia continuar ajudando?? Vlw…

R

O que faz esse converter sec? Você não precisa de converter para um número

D

Ricardo Fávero Júnior:
dlsilva1812:
Bom dia caro amigo

Você pode fazer assim:

<f:selectItem itemLabel="SELECIONE " itemValue="12"/> 
<f:selectItem itemLabel="Janeiro" itemValue="0"/>  
<f:selectItem itemLabel="Fevereiro" itemValue="1"/>  
<f:selectItem itemLabel="Março" itemValue="2"/>  
<f:selectItem itemLabel="Abril" itemValue="3"/>  
<f:selectItem itemLabel="Maio" itemValue="4"/>  
<f:selectItem itemLabel="Junho" itemValue="5"/>  
<f:selectItem itemLabel="Julho" itemValue="6"/>  
<f:selectItem itemLabel="Agosto" itemValue="7"/>  
<f:selectItem itemLabel="Setembro" itemValue="8"/>  
<f:selectItem itemLabel="Outubro" itemValue="9"/>  
<f:selectItem itemLabel="Novembro" itemValue="10"/>  
<f:selectItem itemLabel="Dezembro" itemValue="11"/>

Testei aqui e funcionou!

Espero ter ajudado.


Bom dia…Abaixo postei o erro que está dando quando coloco o SELECIONE no IINICIO…poderia continuar ajudando?? Vlw…

Que erro deu?

R

dlsilva1812:
Ricardo Fávero Júnior:
dlsilva1812:
Bom dia caro amigo

Você pode fazer assim:

<f:selectItem itemLabel="SELECIONE " itemValue="12"/> 
<f:selectItem itemLabel="Janeiro" itemValue="0"/>  
<f:selectItem itemLabel="Fevereiro" itemValue="1"/>  
<f:selectItem itemLabel="Março" itemValue="2"/>  
<f:selectItem itemLabel="Abril" itemValue="3"/>  
<f:selectItem itemLabel="Maio" itemValue="4"/>  
<f:selectItem itemLabel="Junho" itemValue="5"/>  
<f:selectItem itemLabel="Julho" itemValue="6"/>  
<f:selectItem itemLabel="Agosto" itemValue="7"/>  
<f:selectItem itemLabel="Setembro" itemValue="8"/>  
<f:selectItem itemLabel="Outubro" itemValue="9"/>  
<f:selectItem itemLabel="Novembro" itemValue="10"/>  
<f:selectItem itemLabel="Dezembro" itemValue="11"/>

Testei aqui e funcionou!

Espero ter ajudado.


Bom dia…Abaixo postei o erro que está dando quando coloco o SELECIONE no IINICIO…poderia continuar ajudando?? Vlw…

Que erro deu?

SEVERE: Index: 12, Size: 4
java.lang.IndexOutOfBoundsException: Index: 12, Size: 4
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at com.systempro.sapiweb.ui.converter.ConverterStorageBean.getEntity(ConverterStorageBean.java:33)
	at com.systempro.sapiweb.ui.converter.SimpleEntityConverter.getAsObject(SimpleEntityConverter.java:53)
	at org.primefaces.renderkit.SelectRenderer.isSelected(SelectRenderer.java:55)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeOption(SelectOneMenuRenderer.java:360)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeSelectItems(SelectOneMenuRenderer.java:333)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeInput(SelectOneMenuRenderer.java:114)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:91)
	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:65)
//MAIS LINHAS...
D

Ricardo Fávero Júnior:
dlsilva1812:
Ricardo Fávero Júnior:
dlsilva1812:
Bom dia caro amigo

Você pode fazer assim:

<f:selectItem itemLabel="SELECIONE " itemValue="12"/> 
<f:selectItem itemLabel="Janeiro" itemValue="0"/>  
<f:selectItem itemLabel="Fevereiro" itemValue="1"/>  
<f:selectItem itemLabel="Março" itemValue="2"/>  
<f:selectItem itemLabel="Abril" itemValue="3"/>  
<f:selectItem itemLabel="Maio" itemValue="4"/>  
<f:selectItem itemLabel="Junho" itemValue="5"/>  
<f:selectItem itemLabel="Julho" itemValue="6"/>  
<f:selectItem itemLabel="Agosto" itemValue="7"/>  
<f:selectItem itemLabel="Setembro" itemValue="8"/>  
<f:selectItem itemLabel="Outubro" itemValue="9"/>  
<f:selectItem itemLabel="Novembro" itemValue="10"/>  
<f:selectItem itemLabel="Dezembro" itemValue="11"/>

Testei aqui e funcionou!

Espero ter ajudado.


Bom dia…Abaixo postei o erro que está dando quando coloco o SELECIONE no IINICIO…poderia continuar ajudando?? Vlw…

Que erro deu?

SEVERE: Index: 12, Size: 4 java.lang.IndexOutOfBoundsException: Index: 12, Size: 4 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at com.systempro.sapiweb.ui.converter.ConverterStorageBean.getEntity(ConverterStorageBean.java:33) at com.systempro.sapiweb.ui.converter.SimpleEntityConverter.getAsObject(SimpleEntityConverter.java:53) at org.primefaces.renderkit.SelectRenderer.isSelected(SelectRenderer.java:55) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeOption(SelectOneMenuRenderer.java:360) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeSelectItems(SelectOneMenuRenderer.java:333) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeInput(SelectOneMenuRenderer.java:114) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:91) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:65) //MAIS LINHAS...

Blza então amigo, mas eu tinha visto este erro que vc postou qdo tinha colocado tudo com 12.

Uso aqui na empresa o selectOneMenu assim… e funciona normalmente.

<h:selectOneMenu binding="#{ motorista.tipoSang }">
		<f:selectItem itemValue="" itemLabel="Selecione" />
		<f:selectItem itemValue="O-" itemLabel="O-" />
		<f:selectItem itemValue="O+" itemLabel="O+" />
		<f:selectItem itemValue="A-" itemLabel="A-" />
		<f:selectItem itemValue="A+" itemLabel="A+" />
		<f:selectItem itemValue="B-" itemLabel="B-" />
		<f:selectItem itemValue="B+" itemLabel="B+" />
		<f:selectItem itemValue="AB-" itemLabel="AB-" />
		<f:selectItem itemValue="AB+" itemLabel="AB+" />
</h:selectOneMenu>

onde o tipoSang é

Não uso com variável inteira.

Mas blza, boa sorte, não sei o q te dizer mais.

Criado 20 de maio de 2013
Ultima resposta 21 de mai. de 2013
Respostas 11
Participantes 3