Spring MVC поле отображения даты (jquery)

0

Я пытаюсь сопоставить дату, полученную из БД, в моем jsp, используя Spring MVC и некоторый jquery. У меня это в моем jsp:

<form:input path="startDate" id="startDate" type="text" cssClass="input date"/>

В моем контроллере весны у меня есть этот код:

model.addAttribute(TVA_FORM, TvaMapping.modelToForm(tvaService.findCurrentTva()));

Код метода modelToForm:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
TvaForm tvaForm = new TvaForm(tva.getId(), tva.getRate());
tvaForm.setStartDate(sdf.format(tva.getStartDate()));

Форма:

public class TvaForm {
    private Integer id;

    @NotNull
    private Float rate;

    @NotNull
    @NotEmpty
    private String startDate;

    // Contructors/ getters / setters
}

И субъект:

public class Tva {

    @Id 
    @GeneratedValue
    @Column(name = "ID")
    private Integer id;

    @Column(name = "RATE", nullable = false)
    private Float rate;

    @Column(name = "START_DATE", nullable = false)
    @Temporal(TemporalType.DATE)
    private Date startDate;
}

Jquery:

$('input.date').datepicker($.datepicker.regional[ "fr" ]).datepicker("option", "dateFormat", "dd-mm-yy");

Что я делаю не так? почему startDate не отображается в моем поле jsp?

Спасибо вам за помощь!

Теги:
jsp
spring-mvc
jsp-tags

1 ответ

0

На вашей странице jsp убедитесь, что значение атрибута modelAttribute <form:form> является строковым значением TVA_FORM, которое вы помещаете в модель,

<form:form method="POST" modelAttribute="string value of TVA_FORM" action="your action url" methodParam="submit">

Вот как я сопоставляю тип даты и в то же время пользуюсь преимуществами jquery datepicker.

В моем классе команд моя дата все еще является типом java.util.Date. Нет необходимости преобразовывать его в String. Я использую Spring @DateTimeFormat для обработки преобразования из Date в String и обратно.

    @DateTimeFormat(pattern = ArmsConstants.DATE_FORMAT_SHORTDATE)
@NotNull
private Date effectiveDate; 
@DateTimeFormat(pattern = ArmsConstants.DATE_FORMAT_SHORTDATE)

На моей странице jsp,

<th><form:label for="ori.effectiveDate" path="ori.effectiveDate" cssErrorClass="error">Effective Date *:</form:label></th>
<td><form:input path="ori.effectiveDate" class="datepicker" type="mdate" cssErrorClass="errorInput datepicker"/>

И jquery так же просто, как

$( ".datepicker" ).datepicker();

О, И я также использую плагин jquery maskedinput для форматирования выбранной даты на странице jsp, конечно формат должен быть таким же, как и то, что я использовал в @DateTimeFormat

$("[type='mdate']").mask("99/99/9999",{placeholder:" "}); 
  • 0
    Привет, Хайки, у меня есть это в моем jsp <form:form modelAttribute="tvaForm" id="tvaForm" commandName="tvaForm" cssClass="node" action="tva/save">
  • 0
    И в моем контроллере: private static final String TVA_FORM = "tvaForm";
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню