Input Number não considera os decimais
10/12/2015 20:38
formula.quantidade = params.double("quantidade");
antes de executar o save.
beans = {Porém, meu sistema é em português mesmo e me traria outros problemas. Então a solução que adotei foi trocar o type="number" por type="text" e criar o formato numérico no input com javascript.
localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
defaultLocale = new Locale("en","US")
java.util.Locale.setDefault(defaultLocale)
}
}
?
import grails.databinding.converters.ValueConverter
class NumeroConverter implements ValueConverter {
boolean canConvert(value) {
value instanceof String
}
def convert(value) {
if (value == null) {
return null
}
if (value != null && value.trim() == '') {
return null
}
if (value?.contains(',')) {
return new BigDecimal(value.replaceAll(",", "."))
} else {
return new BigDecimal(value)
}
}
Class<?> getTargetType() {
BigDecimal
}
}
// Place your Spring DSL code here
beans = {
localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
defaultLocale = new Locale("pt","BR")
java.util.Locale.setDefault(defaultLocale)
}
// olha o value converter aí em baixo :)
valorConverter sistema.NumeroConverter
}
beans = {
localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
defaultLocale = new Locale("pt","BR")
java.util.Locale.setDefault(defaultLocale)
}
"defaultGrailsjava.lang.DoubleConverter"(DoubleConverter)
}
import grails.databinding.converters.ValueConverter;
public class DoubleConverter implements ValueConverter {
@Override
public boolean canConvert(Object value) {
value instanceof String
}
@Override
public Object convert(Object value) {
if (value == null) {
return null
}
if (value != null && value.trim() == '') {
return null
}
if (value?.contains(',')) {
return new Double(value.replaceAll(",", "."))
} else {
return new Double(value)
}
}
@Override
public Class<?> getTargetType() {
return Double;
}
}?
Para se registrar, clique aqui.