Bean com valor Default - Levar para outra pagina + JSF

14 respostas
A
Estou tentando colocar um valor padrao no meu bean abaixo, mas nao esta guardando, segue os codigos: Managed
<navigation-rule>
        <display-name>Escolha Cidade</display-name>
        <navigation-case>
            <from-action>#{meuBean.selecionarTipoCidade}</from-action>
            <from-outcome>MINA</from-outcome>
            <to-view-id>/pedido/escolhaMinas.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-action>#{meuBean.selecionarTipoCidade}</from-action>
            <from-outcome>PARANA</from-outcome>
            <to-view-id>/pedido/escolhaParana.jsp</to-view-id>
        </navigation-case>
         <navigation-case>
            <from-action>#{meuBean.selecionarTipoCidade}</from-action>
            <from-outcome>GOIAS</from-outcome>
            <to-view-id>/pedido/escolhaGoias.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>

No JSP/F

<h:commandLink id="fecharEscolha" title=" Escolha Cidade" action="#{meuBean.selecionarTipoCidade}">
   <h:graphicImage url="/botoes/continuar.jpg"/>
 </h:commandLink>

No java:

..
if (tipoCidade.equalsIgnoreCase(FormaCidade.TIPO_MINAS)) {
            return "MINAS";
    } else
          if (tipoCidade.equalsIgnoreCase(FormaCidade.TIPO_PARANA)) {
            return "PARANA";
                } else
                 if (tipoCidade.equalsIgnoreCase(FormaCidade.TIPO_GOIAS)) {
            return "GOIAS";
                 } else
                     if (tipoCidade.isEmpty()) {
                         return "PARANA";
                     }  else
                         return "PARANA";
..

Necessariamente eu devo escolher uma cidade para que ele leve esse valor para o banco e depois use numa classe, o que estou tentando fazer é que, caso eu passe sem escolher ele adote uma cidade padrão(como PARANA, como deixei no exemplo)

Tentei mudar o bean, o jsf depois o managed, mas nao adiantou

Vocês sabem onde estou errando?

Valeuu !

14 Respostas

rafaelrodrigues1607

Está dando algum erro no console?

A

Ele diz que o valor é null, quando tento passar sem escolher…

Hebert_Coelho

:oops: Erro meu isso aqui!!! :oops:

A

Aonde voce viu outro post meu sobre isso aqui no GUJ?

Hebert_Coelho

Aonde voce viu outro post meu sobre isso aqui no GUJ?

Foi mals. Desculpe aí!

Escrevi na janela errada! :shock:

A

Aonde voce viu outro post meu sobre isso aqui no GUJ?

Foi mals. Desculpe aí!

Escrevi na janela errada! :shock:

Não tem problema!

Vc nao quer aproveitar e me dar uma “luz” neste meu post?

Hebert_Coelho
Ao invés de fazer if aninhado, tenta fazer assim:
if (tipoCidade.equalsIgnoreCase(FormaCidade.TIPO_MINAS)) {  
    return "MINAS";  
}
   
if (tipoCidade.equalsIgnoreCase(FormaCidade.TIPO_PARANA)) {  
    return "PARANA";  
}

if (tipoCidade.equalsIgnoreCase(FormaCidade.TIPO_GOIAS)) {  
    return "GOIAS";  
}  

return "PARANA";
A

Vou fazer os testes, obrigado

A

..
Quando eu fiz isso com o IF, quase funcionou, mas deu o erro abaixo em seguida:
ERRO: Java.lang.NullPointerException - property: descricaoCidadeFinal

Trecho do bean que deu erro acima:
public String getDescricaoCidadeFinal() {
        descricaoCidadeFinal = "";
        String resource = "";
        try {

else if (this.escolhaCidade.getTipo().equalsIgnoreCase(EscolhaCidade.TIPO_CIDADE)) {
                resource = ResourceHelper.getMessage("testeBO.escolhaCidade.finalizacao.PARANA");
                descricaoCidadeFinal = MessageFormat.format(resource,
                        FormatacaoHelper.formataValor(this.getTotal()),
                        this.getEscolhaCidade().getNome() + "<br/>" + this.getEscolhaCidade().getDescricao());
					...
					...
					    } finally {
            resource = null;
        }
        return descricaoCidadeFinal;
		
		..
Eu revi o codigo e tenho certeza que foi passado o valor para o bean, mas parece que ele esta entendendo que é nulo
Hebert_Coelho

Faz um debug e veja em qual linha exatamente ele está reclamando do valor null, aí fica mais fácil de ajudar.

A
jakefrog:
Faz um debug e veja em qual linha exatamente ele está reclamando do valor null, aí fica mais fácil de ajudar.
Fiz o debug, e deu o erro nesta linha marcada:
..
		    public String getDescricaoCidadeFinal() {
        descricaoCidadeFinal = "";
     String resource = "";<-- aqui ele da o erro e para 
        try {

else if (this.escolhaCidade.getTipo().equalsIgnoreCase(EscolhaCidade.TIPO_CIDADE)) {
                resource = ResourceHelper.getMessage("testeBO.escolhaCidade.finalizacao.PARANA");
                descricaoCidadeFinal = MessageFormat.format(resource,
                        FormatacaoHelper.formataValor(this.getTotal()),
                        this.getEscolhaCidade().getNome() + "<br/>" + this.getEscolhaCidade().getDescricao());
					...
					...
					    } finally {
            resource = null;
        }
        return descricaoCidadeFinal;
		
		..
Eu tentei contornar isso, dando um valor padrao para a string, por exemplo:
String resource = ResourceHelper.getMessage("testeBO.escolhaCidade.finalizacao.PARANA");
                descricaoCidadeFinal = MessageFormat.format(resource,
                        FormatacaoHelper.formataValor(this.getTotal()),
                        this.getEscolhaCidade().getNome() + "<br/>" + this.getEscolhaCidade().getDescricao());
Mas ai o java reclamou com este erro: Cannot format given Object as a Number
Hebert_Coelho

Cara, desculpe falar desse modo mas…
É impossível ter um NullPointer na linha
String resource = “”;

Você está rodando código com cache.

Vá na pasta do seu servidor, apague arquivos temporários. Eles estão quebrando com você.

A

jakefrog:
Cara, desculpe falar desse modo mas…
É impossível ter um NullPointer na linha
String resource = “”;

Você está rodando código com cache.

Vá na pasta do seu servidor, apague arquivos temporários. Eles estão quebrando com você.

Pois é, isso tambem nao entra na minha cabeça, vou fazer isso e posto aqui…

Valeu por enquanto,

A

jakefrog:
Cara, desculpe falar desse modo mas…
É impossível ter um NullPointer na linha
String resource = “”;

Você está rodando código com cache.

Vá na pasta do seu servidor, apague arquivos temporários. Eles estão quebrando com você.

“Infelizmente” nao é problema de cache.

Estou pensando aqui, que quando eu escolho outra cidade ele vai no meu “entity” e traz uns valores de outros campos, por exemplo:(ele faz isso com a cidade Parana tambem)

@Entity
@Table(name="escolha_cidade")
@NamedQueries({
@NamedQuery(name = "EscolhaCidade.listaAtivas", query = "SELECT e FROM escolha_Cidade f " +
"WHERE f.status = 'p'")
})

No entanto, como disse, queria que ele quando fosse null nao precisa ir no banco, talvez eu poderia colocar os valores de campo padrao dentro do Bean…isso é possivel?

Criado 18 de janeiro de 2012
Ultima resposta 19 de jan. de 2012
Respostas 14
Participantes 3