Se eu tenho um atributo do tipo BigDecimal, qual a melhor forma de trabalhar com o envido de um formulário para "popular esse atributo".
Estava tentando com type="number" só que não deu certo, por que ?
Se eu tenho um atributo do tipo BigDecimal, qual a melhor forma de trabalhar com o envido de um formulário para "popular esse atributo".
Estava tentando com type="number" só que não deu certo, por que ?
Oi Julio, tudo bem ?
Cara, você está usando qual framework para trabalhar ?
O Spring já consegue fazer o binding automaticamente, por exemplo e o campo nem precisa tem um tipo especificado.
To usando Spring sim.
c ta falando que o melhor seria usar o form:input daquela taglib do spring ? ai se eu passo o path="" ele consegue se virar. Certo ?
Então, como você vai receber o objeto, o Spring vai mapear todos os campos com o atributo name e vai bater com o objeto recebido.
Algo do genero :
class Produto {
String nome;
BigDecimal preco;
}
E na sua jsp :
<!-- Restante -->
<form>
<input name="nome"/>
<input name="preco"/>
</form>
Ai no seu controller :
@PostMapping("salvaProduto")
public ModelAndView salva(Produto produto){
// salva no banco e vai para uma tela de listagem
}
Na verdade descobri oq estava acontecendo, eu tinha um atributo date, e era ele que estava fazendo confusão no binding. Ai eu anotei o atributo com um @DateTimeFormat(pattern = "dd/MM/yyyy"), só que agora eu to tomando um null pointer na hora que eu tento salvar no banco.
escrevi um to string na classe para saber qual atributo esta vindo nulo:
Pedido [numeroPedido=505, data=java.util.GregorianCalendar[time=1465095600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Sao_Paulo",offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=15,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=2,DAY_OF_MONTH=5,DAY_OF_YEAR=157,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-10800000,DST_OFFSET=0], nomeProduto=Carga Pesada, valor=219, quantidade=30, codCliente=50]
esse nullpointer pode ser por causa dessa loucura que o calendar esta "fazendo", "recebendo", "interpretando" por que ele ta fazendo isso ? ?