Estou tentando colocar um valor padrao no meu bean abaixo, mas nao esta guardando, segue os codigos:
Managed
[code]
<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>
[/code]
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 !
Está dando algum erro no console?
Ele diz que o valor é null, quando tento passar sem escolher…
:oops: Erro meu isso aqui!!! :oops:
Aonde voce viu outro post meu sobre isso aqui no GUJ?
Aonde voce viu outro post meu sobre isso aqui no GUJ?
[/quote]
Foi mals. Desculpe aí!
Escrevi na janela errada! :shock:
Aonde voce viu outro post meu sobre isso aqui no GUJ?
[/quote]
Foi mals. Desculpe aí!
Escrevi na janela errada! :shock: [/quote]
Não tem problema!
Vc nao quer aproveitar e me dar uma “luz” neste meu post?
Ao invés de fazer if aninhado, tenta fazer assim:
[code]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”; [/code]
Vou fazer os testes, obrigado
…
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:
[code]
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() + “
” + this.getEscolhaCidade().getDescricao());
…
…
} finally {
resource = null;
}
return descricaoCidadeFinal;
..
[/code]
Eu revi o codigo e tenho certeza que foi passado o valor para o bean, mas parece que ele esta entendendo que é nulo
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:
[code]
..
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() + “
” + this.getEscolhaCidade().getDescricao());
…
…
} finally {
resource = null;
}
return descricaoCidadeFinal;
..
[/code]
Eu tentei contornar isso, dando um valor padrao para a string, por exemplo:
[code]
String resource = ResourceHelper.getMessage("testeBO.escolhaCidade.finalizacao.PARANA");
descricaoCidadeFinal = MessageFormat.format(resource,
FormatacaoHelper.formataValor(this.getTotal()),
this.getEscolhaCidade().getNome() + "<br/>" + this.getEscolhaCidade().getDescricao());
[/code]
Mas ai o java reclamou com este erro:
[B]Cannot format given Object as a Number[/B]
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ê.
[quote=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ê.[/quote]
Pois é, isso tambem nao entra na minha cabeça, vou fazer isso e posto aqui…
Valeu por enquanto,
[quote=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ê.[/quote]
“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?