Erro de sintaxe em javascript

Pessoal, numa página jsp, tenho um script que diz o seguinte:

<script type="text/javascript"> document.write(getTipo("${item.tipoServico}")) </script>

Esse “tipoServico” é uma variável de um bean que é preenchido ou com o valor “D” ou com o valor “O”.

Então é chamada uma função javascript que deve ler essa variável e retornar “Demanda” se a variável for “D” ou “Oferta” se a variável for “O”.

O problema que enfrento aqui é a sintaxe do javascript, e não encontrei nenhuma resposta na internet para esse problema específico (de comparação de variáveis).

O código atual da function é o seguinte:

function getTipo(valor){ if (valor = "D") { return ('<f:message key="lblDemanda.text"/>'); } else if (valor = "O") { return ('<f:message key="lblOferta.text"/>'); } else return ('erro'); }

(lblDemanda.text e lblOferta.text são variáveis descritas em um arquivo properties que retornam “Demanda” e “Oferta”, respectivamente)

Com essa código, o valor retornado é Demanda, independente da variável valor ser “D”, “O” ou qualquer outro.

Implementando a function assim:

function getTipo(valor){ if (valor == "D") { return ('<f:message key="lblDemanda.text"/>'); } else if (valor == "O") { return ('<f:message key="lblOferta.text"/>'); } else return ('erro'); }

O retorno é sempre “erro”, independente do valor do parâmetro.

E eu substituir os ambas duplos por simples os resultados permanecem os mesmos em ambos dos casos.

function getTipo(valor){ if (valor = 'D') { return ('<f:message key="lblDemanda.text"/>'); } else if (valor = 'O') { return ('<f:message key="lblOferta.text"/>'); } else return ('erro'); }

function getTipo(valor){ if (valor == 'D') { return ('<f:message key="lblDemanda.text"/>'); } else if (valor == 'O') { return ('<f:message key="lblOferta.text"/>'); } else return ('erro'); }

E se trocar o ordem dos ifs:

function getTipo(valor){ if (valor = "O") { return ('<f:message key="lblOferta.text"/>'); } else if (valor = "D") { return ('<f:message key="lblDemanda.text"/>'); } else return ('erro'); }

function getTipo(valor){ if (valor = 'O') { return ('<f:message key="lblOferta.text"/>'); } else if (valor = 'D') { return ('<f:message key="lblDemanda.text"/>'); } else return ('erro'); }

Vai retornar “Oferta”.

Ou seja, usando a comparação com sinal de igual simples (=) vai fazer o if sempre ser verdadeiro, e usando o sinal de igual duplo (==) vai fazer o if ser sempre falso.

Qual seria a sintaxe correta?

Amigo, para fazer comparação de igualdade em javascript vc usa assim:

if(variavel == algumValor){
   alert("valores iguais!");
}

Percebeu que são dois " = " ?

Até!

[quote=cassio]Amigo, para fazer comparação de igualdade em javascript vc usa assim:

if(variavel == algumValor){
   alert("valores iguais!");
}

Percebeu que são dois " = " ?

Até![/quote]

Eu já tentei isso e a comparação dá sempre falsa.

Eu passo um parâmetro String e comparo com outra String

Usando aspas simples ou duplas não muda o resultado (comparação sempre dá falso).

function getTipo(valor){ if (valor == "D") { return ('<f:message key="lblDemanda.text"/>'); } else if (valor == "O") { return ('<f:message key="lblOferta.text"/>'); } else return ('erro'); }

function getTipo(valor){ if (valor == 'D') { return ('<f:message key="lblDemanda.text"/>'); } else if (valor == 'O') { return ('<f:message key="lblOferta.text"/>'); } else return ('erro'); }

Não há alguma propriedade estilo valor.compara(“D”) que eu possa usar em functions do javascript?

Ola Jean sou seu antigo colega Luis Tiago que acabou de sair da sigma…
e o seguinte sua sintaxe esta errada ${item.tipoServico} de uma olhada nos outros jsps que fiz que tem algo bem parecido…
falow…

Cara, tenta dar um alert para ver qual o valor da variavel “valor”, a principio está tudo certo…

function getTipo(valor){
               alert(valor); //para ver se é 'D' ou 'O'
   	   if (valor == 'D') {
  	      return ('<f:message key="lblDemanda.text"/>');
  	   } else if (valor == 'O') {
  	      return ('<f:message key="lblOferta.text"/>');
  	   }  else
  	      return ('erro');
      }

[quote=luistiagos]Ola Jean sou seu antigo colega Luis Tiago que acabou de sair da sigma…
e o seguinte sua sintaxe esta errada ${item.tipoServico} de uma olhada nos outros jsps que fiz que tem algo bem parecido…
falow…[/quote]

Caramba!!! Você por aqui???

Vou almoçar e depois eu testo isso.

Falow…