Como integrar jsf e javascript?

5 respostas
C

Pessoal,

Estou precisando, no evento onload da página JSF, chamar uma função em javascript que recebe como argumento um array passado passado backbeaning. Contudo, por mais que eu tente, não estou conseguindo fazer o código funcionar. Segue abaixo uma versão reduzida do problema. Alguém pode me dizer o porquê da função func1 não imprimir nem o tamanho do array?

Código da página JSF

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<html>
<head>
  <title></title>
  <script src="biblio.js" type="text/javascript"></script>
</head>

<body onload="func1(#{backbeaning.arrayToString})">
  <f:view>
   <h:outputText value="hello world!" />
  </f:view>
</body>

Código do arquivo javascript biblio.js

function func1(input) {
  alert(input.length);
  for (var j=0; j<input.length; j++){
  	alert(input[i]);
  }
}

Código do Back Beaning

public class BackBeaning{
   public String getArrayToString(){
     return "['str1','str2','str3']";
   }
}

5 Respostas

C

Já tentou usar DWR, fica muito bom…

C

será que não vai complicar ainda mais o problema? imaginei que isso seria bastante simples para o jsf.

C

cara, eu faço uma coisa qndo preciso mostrar alguma informação pro usuário: em vez de alerts, uso uma tela modal.
Além de mais bonito, é bem mais fácil de integrar com o JSF.
o RichFaces tem um jeito de fazer modal ignorantemente fácil. Dá uma pesquisada

C

o alert é apenas exemplificativo. minha função verdadeira faz muito mais coisas que só mostrar um alert. porém ela precisa receber um array como parâmetro. sei que o problema não é na função em javascript, pois já testei seu código isolado do jsf e funcionou.

C

pessoal,

encontrei a resposta. é só substituir por

Criado 29 de junho de 2009
Ultima resposta 29 de jun. de 2009
Respostas 5
Participantes 3