Как использовать значения, введенные через jQuery Datepicker в SpringMVC @ModelAttribute? - PullRequest
0 голосов
/ 02 июня 2019

У меня есть 2 <form:> поля на странице .jsp,

Для полей: одно для dateOfBirth и одно для возраста.

Пользователи могут выбрать свою дату рождения черезскрипт jQuery Datepicker, который автоматически вычисляет их возраст для последующего использования.

Я хотел бы использовать атрибут рассчитанного возраста, который будет автоматически установлен SpringMVC.Я не уверен, как это сделать с точки зрения извлечения рассчитанного возраста из сценария jQuery.

Моя страница .jsp

<!DOCTYPE html>

<html>

<head>
<title>Customer Registration Form</title>

<style>
.error {
    color: red
}
</style>

<!--   Date picker jquery stuff start   -->
<link rel="stylesheet"
    href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>

    $(function() {
    $('#datepicker').datepicker(
            {
                onSelect : function(value, ui) {
                    var today = new Date(); 
                    var age = today.getFullYear() - ui.selectedYear;
                    $('#age').text(age);
                },
                maxDate : '+0d',
                changeMonth : true,
                changeYear : true,
                defaultDate : '-18yr',
                dateFormat : 'dd-mm-yy',
            });
    });
</script>
<!--   Date picker jquery stuff end     -->

</head>

<body>


    <form:form action="processForm1" modelAttribute="customer">

        Date of Birth: <form:input type="text" id="datepicker"
            path="birthdate" placeholder="dd/mm/yyyy" />

        <br>
        <br>

<!-- I'm not sure if retrieving age like this from the jQuery calculations work-->
        Age: <form:input type="text" id="age" path="age" />

        <br>
        <br>

        <input type="submit" value="Submit" />

    </form:form>
</body>

</html>

Мой объект сущности .java file

import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Email;

import com.luv2code.springdemo.mvc.validation.CourseCodeDefinitions;
import com.luv2code.springdemo.mvc.validation.DateConverter;

public class Customer {

    @Temporal(TemporalType.DATE)
    @DateTimeFormat(pattern = "dd-MM-yyyy")
    private Date birthdate;

    private String age; 


    public String getBirthdate() {
        return DateConverter.formatDateToStringFormat(birthdate);
    }
    public void setBirthdate(Date birthdate) {

        System.out.println("Debug: Customer.java setBirthdate()-> birthdate: " +birthdate);
        System.out.println("Debug: Customer.java setBirthdate()-> birthdate type: " + birthdate.getClass().getSimpleName());

        this.birthdate = birthdate;
        System.out.println("Debug: Customer.java setBirthdate()-> Exiting setBirthday()");
    }
    public String getAge() {
        //this keeps printing null      
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
}

мой класс контроллера

    @RequestMapping("/processForm1")
    public String processForm1(
            @ModelAttribute("customer") Customer theCustomer) {

        System.out.println("Debug: CustomerController.java processForm1() => DoB: " + theCustomer.getBirthdate());
        System.out.println("Debug: CustomerController.java processForm1() => DoB type: " + theCustomer.getBirthdate().getClass().getSimpleName());

                //this keeps printing null :(
        System.out.println("Customer age: " + theCustomer.getAge());

        return "customer-confirmation";

    }

Как видно из приведенного выше класса, всякий раз, когда я пытаюсь извлечь возраст пользователя из моей функции getAge (), он печатает нулевое значение, а незначение, выбранное пользователем из средства выбора даты ... как это исправить, чтобы springMVC правильно установил возраст через jQuery datepicker, чтобы я мог получать и манипулировать данными, сохраненными в объекте клиента?

СпасибоЗа любую помощь заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...