Campo VAlores JSP Resolvido

Boa Tarde,

Preciso de ajudar em um detalhe minimo:

salvei no banco um valor 25,30
o tipo do objt é double

quando faço select aparece na minha jsp 25,3
como acrescentar o ,00?

segue abaixo códigos:

este é o bean public double getVlr_repasse_financiamento_orig() { return vlr_repasse_financiamento_orig; } public void setVlr_repasse_financiamento_orig(String vlr_repasse_financiamento_orig) { if(vlr_repasse_financiamento_orig !=null && !vlr_repasse_financiamento_orig.equals("")) this.vlr_repasse_financiamento_orig = new Double(vlr_repasse_financiamento_orig); else this.vlr_repasse_financiamento_orig = -1; }

[code]ESte é o DAO
public String cadastrarContratacaoObra(ContratacaoObraBean cobra) throws ServletException {

	String query = "INSERT INTO contratacao_obra(" + 
	"IDT_EMPREENDIMENTO, " + "COD_ESTAGIO_CONTRAT_OBRA, " +"DES_OBS_ESTAGIO_CONTRAT_OBRA, "+
	"DAT_OIS_PREVISTA_PARA, "+"DAT_OIS_ASSINADA_EM, "+
	"NUM_PROCESSO_ADM, " + "NUM_PROCESSO_LICITACAO, "+"NUM_CONTRATO, " + "VLR_CONTRAPARTIDA_ORIG_1, " + 
	"VLR_CONTRAPARTIDA_ORIG_2, " + "VLR_CONTRAPARTIDA_ORIG_3, " + "VLR_CONTRAPARTIDA_ORIG_4, " + 
	"DES_CONTRAPARTIDA_ORIG_1, " + "DES_CONTRAPARTIDA_ORIG_2, " + "DES_CONTRAPARTIDA_ORIG_3, " + 
	"DES_CONTRAPARTIDA_ORIG_4, " + "VLR_CONTRAPARTIDA_ADT_1, " + "VLR_CONTRAPARTIDA_ADT_2, " + 
	"VLR_CONTRAPARTIDA_ADT_4, " + "VLR_CONTRAPARTIDA_ADT_3, " + "DES_CONTRAPARTIDA_ADT_1, " + 
	"DES_CONTRAPARTIDA_ADT_2, " + "DES_CONTRAPARTIDA_ADT_3, " + "DES_CONTRAPARTIDA_ADT_4, " + 
	"VLR_CONTRAPARTIDA_TESOURO_ORIG, " + "VLR_REPASSE_FINANCIAMENTO_ORIG, " + "VLR_CONTRAPARTIDA_TESOURO_ADT, " + 
	"VLR_REPASSE_FINANCIAMENTO_ADT, " + "VLR_TOTAL_ORIG, " + "VLR_TOTAL_ADT)"+
	"VALUES(" + 
	cobra.getIdt_empreendimento()+", "+
	cobra.getCod_estagio_contrat_obra()+", "+"'"+
	cobra.getDes_obs_estagio_contrat_obra()+"', "+ "'" +
	cobra.getDat_ois_prevista_para()+"', "+ "'" +
	cobra.getDat_ois_assinada_em()+"', "+ "'" +
	cobra.getNum_processo_adm()+"', "+"'"+
	cobra.getNum_processo_licitacao()+"', "+"'"+
	cobra.getNum_contrato()+ "', " + 
	cobra.getVlr_contrapartida_orig_1()+ ", " + 
	cobra.getVlr_contrapartida_orig_2()+ ", " +
	cobra.getVlr_contrapartida_orig_3()+ ", " +
	cobra.getVlr_contrapartida_orig_4()+ ", " + "'" +
	cobra.getDes_contrapartida_1()+ "', " + "'" +
	cobra.getDes_contrapartida_2()+ "', " + "'" +
	cobra.getDes_contrapartida_3()+ "', " + "'" +
	cobra.getDes_contrapartida_4()+ "', " + 
	cobra.getVlr_contrapartida_adt_1()+ ", " +
	cobra.getVlr_contrapartida_adt_2()+ ", " +
	cobra.getVlr_contrapartida_adt_4()+ ", " +
	cobra.getVlr_contrapartida_adt_3()+ ", " + "'" +
	cobra.getDes_contrapartida_adt_1()+ "', " + "'" +
	cobra.getDes_contrapartida_adt_2()+ "', " + "'" +
	cobra.getDes_contrapartida_adt_3()+ "', " + "'" +
	cobra.getDes_contrapartida_adt_4()+ "', " + 
	cobra.getVlr_contrapartida_tesouro_orig()+ ", " + 
	cobra.getVlr_repasse_financiamento_orig()+ ", " +
	cobra.getVlr_contrapartida_tesouro_adt()+ ", " +
	cobra.getVlr_repasse_financiamento_adt()+ ", " +
	cobra.getVlr_total_orig()+ ", " +
	cobra.getVlr_total_adt()+ ")";		

	
	try { 
		Statement st = ContextOracle.getInstance().createStatement();
		st.execute(query);
		st.close();


	} catch (SQLException sqlex) {
		throw new ServletException(sqlex);
	}

	return null;
}

[/code]

[code]este é o select
public ContratacaoObraBean consultarEmprContratacaoObra(String codigo) throws ServletException {

ContratacaoObraBean empr = null;

	String sql = "select * from contratacao_obra where idt_empreendimento = '" + codigo + "'";

	try {
		Statement st = ContextOracle.getInstance().createStatement();

		ResultSet rs = st.executeQuery(sql);

		while (rs.next()) {
			empr = new ContratacaoObraBean();
			
			empr.setIdt_contratacao(rs.getString("IDT_CONTRATACAO"));
			empr.setCod_estagio_contrat_obra(rs.getString("COD_ESTAGIO_CONTRAT_OBRA"));
			empr.setDes_obs_estagio_contrat_obra(rs.getString("DES_OBS_ESTAGIO_CONTRAT_OBRA"));
			empr.setDat_ois_prevista_para(rs.getString("DAT_OIS_PREVISTA_PARA"));
			empr.setDat_ois_assinada_em(rs.getString("DAT_OIS_ASSINADA_EM"));
			empr.setNum_processo_adm(rs.getString("NUM_PROCESSO_ADM"));
			empr.setNum_processo_licitacao(rs.getString("NUM_PROCESSO_LICITACAO"));
			empr.setNum_contrato(rs.getString("NUM_CONTRATO"));
			empr.setVlr_contrapartida_orig_1(rs.getString("VLR_CONTRAPARTIDA_ORIG_1"));
			empr.setVlr_contrapartida_orig_2(rs.getString("VLR_CONTRAPARTIDA_ORIG_2"));
			empr.setVlr_contrapartida_orig_3(rs.getString("VLR_CONTRAPARTIDA_ORIG_3"));
			empr.setVlr_contrapartida_orig_4(rs.getString("VLR_CONTRAPARTIDA_ORIG_4"));
			empr.setDes_contrapartida_1(rs.getString("DES_CONTRAPARTIDA_ORIG_1"));
			empr.setDes_contrapartida_2(rs.getString("DES_CONTRAPARTIDA_ORIG_2"));
			empr.setDes_contrapartida_3(rs.getString("DES_CONTRAPARTIDA_ORIG_3"));
			empr.setDes_contrapartida_4(rs.getString("DES_CONTRAPARTIDA_ORIG_4"));
			empr.setVlr_contrapartida_adt_1(rs.getString("VLR_CONTRAPARTIDA_ADT_1"));
			empr.setVlr_contrapartida_adt_2(rs.getString("VLR_CONTRAPARTIDA_ADT_2"));
			empr.setVlr_contrapartida_adt_3(rs.getString("VLR_CONTRAPARTIDA_ADT_3"));
			empr.setVlr_contrapartida_adt_4(rs.getString("VLR_CONTRAPARTIDA_ADT_4"));
			empr.setDes_contrapartida_adt_1(rs.getString("DES_CONTRAPARTIDA_ADT_1"));
			empr.setDes_contrapartida_adt_2(rs.getString("DES_CONTRAPARTIDA_ADT_2"));
			empr.setDes_contrapartida_adt_3(rs.getString("DES_CONTRAPARTIDA_ADT_3"));
			empr.setDes_contrapartida_adt_4(rs.getString("DES_CONTRAPARTIDA_ADT_4"));
			empr.setVlr_contrapartida_tesouro_orig(rs.getString("VLR_CONTRAPARTIDA_TESOURO_ORIG"));
			empr.setVlr_repasse_financiamento_orig(rs.getString("VLR_REPASSE_FINANCIAMENTO_ORIG"));
			empr.setVlr_total_orig(rs.getString("VLR_TOTAL_ORIG"));
			empr.setVlr_contrapartida_tesouro_adt(rs.getString("VLR_CONTRAPARTIDA_TESOURO_ADT"));
			empr.setVlr_repasse_financiamento_adt(rs.getString("VLR_REPASSE_FINANCIAMENTO_ADT"));
			empr.setVlr_total_adt(rs.getString("VLR_TOTAL_ADT"));
			
			
			
			
			
		}
		st.close();
		rs.close();
	} catch (SQLException e) {
		log.severe("Ocorreu um erro durante a consulta ao SQL: "
				+ e.getMessage());
		e.printStackTrace(System.err);
	} catch (Throwable e) {
		log.severe("Ocorreu um erro inesperado: " + e.getMessage());
		e.printStackTrace(System.err);
	}
	return empr;
}

[/code]

ESta é a JSP <legend class="legend2">Valores Contratados - Original</legend> <div class="colunas"> <p class="width100"> <label for="vl_contr_repasse_OBRA" style="width: 100px">Repasse Financiamento&nbsp;<i>R$</i></label> <input type="text" id="vl_contr_repasse_OBRA" name="vl_contr_repasse_OBRA" AUTOCOMPLETE=OFF style="width: 170px" value="<%=((ContratacaoObraBean)request.getAttribute("obra")).getVlr_repasse_financiamento_orig()%>"/> <label for="vl_contr_contrapartida_OBRA" style="width: 120px">Contrapartida Tesouro&nbsp;<i>R$</i></label> <input type="text" id="vl_contr_contrapartida_OBRA" name="vl_contr_contrapartida_OBRA" AUTOCOMPLETE=OFF style="width: 170px" value="<%=((ContratacaoObraBean)request.getAttribute("obra")).getVlr_contrapartida_tesouro_orig()%>"/> <label for="vl_contr_total_OBRA" style="width: 100px">Valor Total&nbsp;<i>R$</i></label> <input type="text" id="vl_contr_total_OBRA" name="vl_contr_total_OBRA" AUTOCOMPLETE=OFF style="width: 170px" value="<%=((ContratacaoObraBean)request.getAttribute("obra")).getVlr_total_orig()%>"/> </p>

use a tag <fmt:formatNumber />

Desculpe sou novato, poderia citar um exemplo?

da uma lida nessa apostila

Vou dar uma lida…mas é somente um detalhe…tenho que entregar hoje…quem poder me ajudar galera obrigado

ve se isso ajuda vc

http://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm

uma outra opção é usa jquery maskinput

http://digitalbush.com/projects/masked-input-plugin/

um jeito fácil? assim:

no JavaBean:

[code]public double getVlr_repasse_financiamento_orig() {
return vlr_repasse_financiamento_orig;
}

// novo método
public String getVlr_repasse_financiamento_orig_formatado() {
NumberFormat nf = new DecimalFormat(“0.00”);
return nf.format(vlr_repasse_financiamento_orig);
}[/code]
no JSP:

<input type="text" id="vl_contr_repasse_OBRA" name="vl_contr_repasse_OBRA"  AUTOCOMPLETE=OFF style="width: 170px" value="<%=((ContratacaoObraBean)request.getAttribute("obra")).getVlr_repasse_financiamento_orig_formatado()%>"/>

primeiro adicione a taglib fmt ao jsp

<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

depois

<fmt:formatNumber value="${produto.preco }" type="currency" var="preco"/>
<input id="preco" type="text" name="produto.preco" value="${preco}"/>

ou assim

<input id="preco" type="text" name="produto.preco" value="<fmt:formatNumber value="${produto.preco }" type='currency' />"/>

agora é so vc adaptar pro seu projeto

mas talvez não funcione por causa do nome dos seus atributos e metodos, pois eles não seguem o padrão javaBeans

Legal cara conseguir implementar…mas quando vou atualizar qualquer campo do formulario estoura esse erro abaixo:

GRAVE: Servlet.service() for servlet alteraEmpreendimento threw exception
java.lang.NumberFormatException: For input string: “R$ 25,30”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Double.parseDouble(Double.java:510)
at br.gov.sp.saobernardo.sehab.empservlet.AlteraEmpreendimentoServlet.doPost(AlteraEmpreendimentoServlet.java:294)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)

Ai mudei o objeto para double e fiz um parse mas ainda não deu certo para salvar e atualizar…visualmente até o cifrão ele carrega:

        obra.setVlr_repasse_financiamento_orig(Double.parseDouble((request.getParameter("vl_contr_repasse_OBRA"))));

faz assim,

tira o type=“currency”

e adiciona maxFractionDigits=“2” minFractionDigits=“2”

mas dessa forma agora não ira aparecer nem R nem o $ a não ser que vc especifique

e na hora de fazer o parse vc vai ter que fazer isso

request.getParameter("vl_contr_repasse_OBRA").replace(".","").replace(",",".");

Danilo.

Muito obrigado. Consegui concluir meu trabalho.

Por nada

edita o seu primeiro post e coloca a tag [Resolvido] no titulo

Rodrigomazza, utilize PrepareStatement, é mais prático e mais seguro.