Java script + jsf [resolvido]

11 respostas
K

PessoALL e o seguinte…eu estou tentando usar uma funçao js atraves de um onkeypress dentro do inputText…

a minha estrutura e a seguinte, tenho um arquivo que contem todos os js do sistema, chamo esse arquivo dentro da minha pagina, ate ai blz.

depois tenho os meus componetes…onde um deles e o textTelefone, este esta assim…

<h:inputText value="#{valor}" id="#{id}" disabled="#{readonly}"
	maxlength="#{empty tamanho ? 20 : tamanho}" onkeypress="return formatar(this, '(##) ####-####');"
	size="#{empty largura ? 40 : largura}"
	class="#{empty estilo ? 'box_default' : estilo}" />

o onkeypress chama a funçao formatar e passa a mascara, segundo o meu js permite, em paginas html normais…executa blz ou seja o script funciona, mas no jsf não tem cristo que faz funcionar… Alguem da um help ai???

Desde já agradeço!

11 Respostas

V

Fala conterrânea! Tudo bem?!

Olha, com relação a seu problema eu devo dizer que não sou um expert! Também estou em fase de aprendizado em JSF (se é que você realmente está)!
Mas no caso o fato de você estar usando uma função javascript dentro do JSF assim eu não sei se é muuuuuuuuito legal!
Tipo, se eu estivesse com este mesmo problema eu pensaria em disparar um evento para passar o que está digitado para o bean para que um método formate este valor e retorne para o bean. Creio que Ajax4JSF deva ter algo para ajudar. Mas eu ainda estou tendo problemas para conseguir usá-lo também.

Outra alternativa é usar conversores/validadores que já fazem com que o valor seja editado e aceito em um determinado formato. O problema disso seria o momento em que você quer que isso aconteça, antes do ciclo executar e talvez até mesmo sem submeter o formulário. Novamente, eu sugeriria uma dose de AJAX. Assim que tiver algo mais concreto posso passar aqui novamente!

Flws!

K

Ola…

Então o problema e que pela estrutura aki tenho que usar assim.

Mas valeu, qualquer coisa me fala ai, se eu descobrir posto aki tbm…

Em relação ao meu aprendizado, tbm to aprendendo o jsf, ja to um tempinho com ele, mas essas particularidades sempre me quebra as pernas…rsrsrs

Vlws!

M

o Valdemar Neto está correto da uma olhada nas lib do ajax4jsf é bem legal, ou então utilize evento e listener que vao executar um método no seu bean, com o JSF você consegue abstratir bastante o javascript das suas páginas e se vc consegue rodar JSF vc consegue fazer isso sem problemas de estrutura a não ser talvez que teja desenvolvendo embaixo de alguma coutra tecnologia como portlets para Liferay, que te tira algumas opções mas mesmo assim ainda funcionaria nesse caso provavelmente.

D

JSF as vezes se complica um pouco com chamadas externas de Javascript, tenta o seguinte:

<script type="text/javascript" language="javascript" src="${pageContext.request.contextPath}/pastaComJS/meuJS.js"></script>

pageContext já vai estar disponível na sua aplicação, depois é só colocar o caminho e tentar chamar, acredito que vai funcionar.

Até !

K

Galera deixa eu tentar explicar como ta a minha arquitetura aki de arquivos…talvez assim ajuda vcs a ter uma luz e me da uma tbm…

Seguinte…

pages/js/script.js = onde esta o script

ai tenho a minha pagina de de layout = onde chamo o js, mostrando o caminho dito acima…

depois tenho os meus componentes que é onde chamo a funçao e ja deixo la estatico…

ai finalmente tenho a minha pagina de edição onde chamo esse componete…

Entao assim ajuda, talvez foi algum erro na hora de chamar a função e tals…ai eu coloquei um alert la no meu componente, e chegou la, o problema e que não ta chamando a funçao…

Então fiz do jeito que o danielfns me disse logo acima ai, mas tbm não funcionou…e sobre o ajax nada feito o meu patrao quer e o js…

Então alguem sabe alguma solução…ja to pra ficar doida…rsrs.

Abs

V

Você está usando JSF puro ou está usando como Facelets também?!

K

com Facelets tbm

V

Ich! Pois é! Eu também estou usando JSF + Facelets e ao tentar usar Javascript puro, eu tive certos problemas. Tipo, eu coloquei o cabeçalho no template, as páginas que implementam o template simplesmente pararam de funcionar. Subiam em branco. Ao tentar colocar as chamadas nas páginas e não no template, simplesmente não funcionava. Aí eu resolvi usar Rich Faces e estou aqui tentando fazer funcionar, para poder usar as funcionalidades AJAX nativas do RichFaces.

De qualquer modo, boa sorte aí!

K

Galera e o seguinte…conseguir resolver da seguinte forma…

pela minha estrutura como disse acima, coloquei a minha funçao diretamento no meu template…

E FUNFOU!!!

o negocio e que não tava conseguindo acessar o meu arquivo de scripts. então coloquei a função diretamente…

resolvi o meu problema, espero que te ajude tbm Valdemar Neto…Vc ja tentou isso?

Abs, qualquer coisa me fala ai a sua estrutura, talvez consiga te dar uma luz…rsr

Abs!

V

Hehehe! Na verdade, cheguei a tentar a função diretamente sim, mas eu acho que eu estava tendo um problema mais de escopo da página porque eu queria, a partir de um formulário de uma pop-up, mudar o valor de um campo de formulário em outra janela, utilizando uma função javascript. Mas por saber que o JSF dá certo suporte a isso, estou tentando usar Modal Panel do RichFaces para fazer isso de forma mais fácil e amena.

De qualquer forma obrigado também! Qualquer hora a gente se topa em algum evento em Goiânia! Flws!

K

blz…topamos sim…
Goiania e um ovo…kkk

Flws!

Criado 16 de junho de 2009
Ultima resposta 17 de jun. de 2009
Respostas 11
Participantes 4