Como formato um campo float que deverá conter vírgula?

Bom dia.

Faz alguns meses que aprendi em java a formatar um JTextField, onde o usuário
digitava uma vírgula e o banco recebia um ponto.

  • Ele digitava a vírgula e não digitava números em campo com máscara de vírgula.

Mas agora estou tentando fazer isso em JSP e não sei como começar,
pois não é a mesma coisa pegar o campo de texto do html e fazer isso.

Como posso proceder?

O código java que eu utilizo pra isso é:

DecimalFormat formatCampo = new DecimalFormat("##,#00.0"); // preenche automaticamente c/ ponto ou vírgula field = new JFormattedTextField(formatCampo); field.setHorizontalAlignment(JTextField.RIGHT);

e no banco de dados:

String StrIdade; float idade; StrIdade = field.getText(); StrIdade = StrIdade.replace(",", "."); // faz com que na hora de inserir mude para um ponto try { idade = Float.valueOf(StrIdade); } catch(NumberFormatException nfex) { JOptionPane.showMessageDialog(null, "Preencha a idade corretamente!", "Erro", JOptionPane.ERROR_MESSAGE); return; }

Obrigado.

eu tenho scripts para valores R$ 1.000,00

//Formata n?mero tipo moeda usando o evento onKeyDown 
function Formata(campo,tammax,teclapres,decimal) { 
	var tecla = teclapres.keyCode; 
	vr = Limpar(campo.value,"0123456789"); 
	tam = vr.length; 
	dec=decimal 
	
	if (tam < tammax && tecla != 8){ 
		tam = vr.length + 1 ; 
	} 
	
	if (tecla == 8 ) { 
		tam = tam - 1 ; 
	} 
	
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) { 
		if ( tam <= dec ) { 
			campo.value = vr ; 
		} 
		if ( (tam > dec) && (tam <= 5) ) { 
			campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; 
		} 
		if ( (tam >= 6) && (tam <= 8) ) { 
			campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; 
		} 
		if ( (tam >= 9) && (tam <= 11) ) { 
			campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; 
		} 
		if ( (tam >= 12) && (tam <= 14) ) { 
			campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; 
		} 
		if ( (tam >= 15) && (tam <= 17) ) { 
			campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam ) ;
		} 
	}
}

//bloqueia teclas 
function Tecla(e) {
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla > 47 && tecla < 58) // numeros de 0 a 9
			return true;
		else {
			if (tecla != 8) // backspace
				event.keyCode = 0;
			else
				return true;
		}
}

// retira caracteres invalidos da string 
function Limpar(valor, validos) { 
	var result = ""; 
	var aux; 
	
	for (var i=0; i < valor.length; i++) { 
		aux = validos.indexOf(valor.substring(i, i+1)); 
		if (aux>=0) { 
			result += aux; 
		} 
	} 
	return result; 
} 

 <h:outputText value="Valor do Bem:"/>
            <x:inputText id="valor"
            value="#{CadBem.form.bem.vlbem}" styleClass="basic" 
            converter="tjro.jsf.BigDecimal"
            displayValueOnly="#{!CadBem.form.editavel}"
            onkeydown="Formata(this,20,event,2)" onkeypress="return Tecla(event)"
            />

Pode adaptar para o formato que deseja.

Eu uso o NetBeans.

Mostra um erro nas últimas linhas.
Elas são para o xml?

Eu procuro algo mais simples mas obrigado pela ajuda.

desculpe
essas linhas são de jsf

#  <h:outputText value="Valor do Bem:"/>  
#             <x:inputText id="valor"  
#             value="#{CadBem.form.bem.vlbem}" styleClass="basic"   
#             converter="tjro.jsf.BigDecimal"  
#             displayValueOnly="#{!CadBem.form.editavel}"  
#             onkeydown="Formata(this,20,event,2)" onkeypress="return Tecla(event)"  
#             />  

você pode usar em formulários html, em campos de texto

Mas aí gera um NullPointerException, quando clico em cadastrar.

Não tem como fazer isso em JSP?