gapler
gapler

Reputation: 9

Problem with @NumberFormat and MySQL and Spring

I have one table in MySQL:

CREATE TABLE `myTab` (
  `code` VARCHAR(10) NOT NULL,
  `membershipValue` DOUBLE(15,2) NULL,
  PRIMARY KEY (`code`));

and my class:

@Id
private String code;

@NumberFormat(pattern="###,##0.00")
private Double membershipValue=0.0;

I made an annotation using NumberFormat for the monetary format I desired...

Then, I create the HTML using spring and Thymeleaf. Here is the form:

<form th:action="@{/plan/addMyTab}" th:object="${oMyTab}" method="post">
    <div class="row"> 
        <fieldset class="form-group border rounded-3 p-3">
            <legend>Membership</legend>
            <div class="row">
                <label class="col-sm-2 col-form-label">Membership value</label>
                <div class="col-sm-2">
                    <input class="form-control" type="text" th:field="*{membershipValue}">
                </div>  
                <div class="col-sm-1">
                    <span class="mensagem" th:if="${#fields.hasErrors('membershipValue')}" th:errors="*{membershipValue}"></span>
                </div>                  
            </div>
        </fieldset>
    </div>
    <input class="btn btn-primary" type="submit" value="Gravar" />
</form>

When I submit the form, I got this error:

enter image description here

With description: Failed to convert property value of type java.lang.String to required type java.lang.Double for property membershipValue; For input string: "1.234,56"

This error only happens with values > 1.000,00 (in USA: 1000.00)

What I'm doing wrong?

Upvotes: 0

Views: 22

Answers (0)

Related Questions