JSF 2.0+PrimeFaces+Máscara

Pessoal estou com um problema, já dei uma boa pesquisada e infelizmente não achei uma solução válida, meu problema é o seguinte, preciso de uma máscara para moeda.
O que tinha antes era uma aplicação jsp onde usava o jquery.maskMoney e jquery.maskedinput para minhas máscaras.
Estamos migrando a aplicação para jsf 2.0 com primefaces, o problema é que o código que usava antes não funciona mais.
Antes usava:

	jQuery(function($){
  
		$("#tele").mask("(99) 9999-9999");
		$("#cpf").mask("999.999.999-99");
		$("#cnpj").mask("99.999.999/9999-99");
		$("#datven").mask("99/99/9999");
		$("#valpri").maskMoney({symbol:"R$",decimal:",",thousands:"."});
		$("#valjur").maskMoney({symbol:"R$",decimal:",",thousands:"."});
		$("#valmul").maskMoney({symbol:"R$",decimal:",",thousands:"."});	
	
		});

O componente Masked Input do prime faces resolve meu problema parcialmente, mas no caso de moeda não;

Alguém poderia me ajudar?

Grato, Alysson Lemos;

rapaz , utilizo o primefaces, mas algumas coisas eu coloco jquery mesmo.
No caso de um input para valor monetario, utilizei h:inputtext com jquery

$j('.valor').maskMoney({symbol:"R$",decimal:",",thousands:"."});

é só ter cuidado para não haver conflitos entre o jquery do prime com o seu jquery

[quote=rjbcordeiro]rapaz , utilizo o primefaces, mas algumas coisas eu coloco jquery mesmo.
No caso de um input para valor monetario, utilizei h:inputtext com jquery

$j('.valor').maskMoney({symbol:"R$",decimal:",",thousands:"."});

é só ter cuidado para não haver conflitos entre o jquery do prime com o seu jquery[/quote]

quando eu utilizo java com jquery, não uso muito o id e sim class (dica)

[quote=rjbcordeiro][quote=rjbcordeiro]rapaz , utilizo o primefaces, mas algumas coisas eu coloco jquery mesmo.
No caso de um input para valor monetario, utilizei h:inputtext com jquery

$j('.valor').maskMoney({symbol:"R$",decimal:",",thousands:"."});

é só ter cuidado para não haver conflitos entre o jquery do prime com o seu jquery[/quote]

quando eu utilizo java com jquery, não uso muito o id e sim class (dica)[/quote]

cara foi mau, não sei o que ta acontecendo com a minha net, eu clico uma vez e manda duas mensagens.

rjbcordeiro, se não for pedir muito, tu teria uma exemplo?
Por que assim, eu devo importar o jquery ainda? ou o nativo do prime resolve?

Resolvido o problema!

<script>
jQuery(function($){
          $("#valorPrincipal").maskMoney({symbol:"R$ ", decimal:",", thousands:".", showSymbol:true});
});
</script>
<h:form prependId="false">
<h:inputText id="valorPrincipal" maxlength="16" size="16" tabindex="8" value="#{darf.valorPrincipal}"/>
</h:form>

Ao definir a atributo prependId como false o render mantem o nome do id sem alteração.

Grato!

no template da aplicação -> usei facelets

<h:head>
        <h:outputScript name="jquery-1.5.min.js" library="javascript" target="head"/>
...
          <h:outputScript name="script.js" library="javascript" target="head"/>   <!-- aqui meu script -->
 
</head>

script.js

var $j = jQuery.noConflict(); //coloco isto para não ter conflito com outras versões do jquery ( no caso do proprio componente) vc tb pode abrir a lib e atualizar o jquery lá mesmo ...


//para minhas funções
$j(function(){
...

$j('.valor').maskMoney({symbol:"R$",decimal:",",thousands:"."});  //ai todo componente que eu colocar class='valor' vai pegar esta mascara
...
}

no xhtml

<h:inputText styleClass="valor" value="#{produtoPrecoController.selected.valor}" title="#{bundle.CreateProdutoPrecoTitle_valor}" required="true" requiredMessage="#{bundle.CreateProdutoPrecoRequiredMessage_valor}"/>

pronto acho que é isto, qualquer coisa posta ai.

[quote=rjbcordeiro]no template da aplicação -> usei facelets

<h:head>
        <h:outputScript name="jquery-1.5.min.js" library="javascript" target="head"/>
...
          <h:outputScript name="script.js" library="javascript" target="head"/>   <!-- aqui meu script -->
 
</head>

script.js

var $j = jQuery.noConflict(); //coloco isto para não ter conflito com outras versões do jquery ( no caso do proprio componente) vc tb pode abrir a lib e atualizar o jquery lá mesmo ...


//para minhas funções
$j(function(){
...

$j('.valor').maskMoney({symbol:"R$",decimal:",",thousands:"."});  //ai todo componente que eu colocar class='valor' vai pegar esta mascara
...
}

no xhtml

<h:inputText styleClass="valor" value="#{produtoPrecoController.selected.valor}" title="#{bundle.CreateProdutoPrecoTitle_valor}" required="true" requiredMessage="#{bundle.CreateProdutoPrecoRequiredMessage_valor}"/>

pronto acho que é isto, qualquer coisa posta ai.[/quote]

Mas o seguinte, estou tentando usar o jquery.maskMoney.js.

O que tentei foi isso aqui. mas não tive sucesso.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
	<title>Teste</title>
	<h:outputScript library="js" name="jquery/jquery.js" target="head" />
	<script type="text/javascript" src="../js/jquery.maskMoney.js"></script>
	<h:outputScript target="head">
    $ = jQuery.noConflict();
    $(document).ready(function() {
    	$j('.valor').maskMoney({symbol:"R$",decimal:",",thousands:"."});
    });
</h:outputScript>
</h:head>
<h:body>
	<h:form prependId="false">
		<fieldset>
			<legend>Formulário</legend>

			Valor do Principal<br />
			<h:inputText id="valorPrincipal" styleClass="valor" maxlength="16"
				size="16" tabindex="8" value="#{darf.valorPrincipal}"
				required="true" requiredMessage="*" immediate="true">
				<f:convertNumber locale="pt_BR" />
			</h:inputText>
			<h:message for="valorPrincipal" style="color: red" />
			
		</fieldset>
	</h:form>

</h:body>
</html>

O que fiz de errado?

Grato.