Spring MVC & DataBinding mit BigDecimal

pizza1234

Erfahrenes Mitglied
Hi,
ich habe eine Jsp, in der ein Währungsfeld benutzt wird:
Java:
<tr><td>Angebotssumme: </td><td><form:input path="offer.sum" /></td></tr>

Als CommandObject dient ein Domainenobjekt, das als "sum" einen BigDecimal-Wert enthält.
Java:
public class Offer
{
private BigDecimal sum;

..getter/setter
}

Gemappt wird das Ganze über Hibernate auf MySQL (DECIMAL(10,2)).

In der DB steht als Wert z.B: 110.20
Zeige ich die JSP an, steht dort natürlich auch 110.20 und nicht 110,20.

Gibt es eine Möglichkeit, evtl über NumberFormat.getCurrencyInstance(Locale.GERMANY) o.ä Währungen vernünftig (mit Komma) in der JSP anzuzeigen? Dazu müßte ich ja irgendwie an das "input-Feld" rankommen?
Ich möchte eigentlich nicht mein Domänenobjekt mit einem String-Equivalent für das DataBinding zu "sum" versauen, nur damit ich auf der Oberfläche ein Komma habe.
Wie macht ihr das grundsätzlich mit Währungen? Wie sieht es z.B. im X-Tausender-Bereich aus? 111.000,20 oder 111000,20?

Schöne Grüße
Peter
 
Im Normalfall registrierst du über eine Methode, die mit @InitBinder annotiert ist und registrierst in dieser einen PropertyEditor für den entsprechenden Typ.

In deinem Fall ist das wohl ein CustomNumberEditor dem du beim Instantiieren ein NumberFormat mitgeben kannst. Dieser wird dann sowohl beim Parsen der Werte als auch beim Formatieren benutzt.

Gruß
Ollie
 
Zurück