Как это работает?Java дата, календарь и Richface вопрос - PullRequest
0 голосов
/ 03 августа 2011

Я заметил, что многие Date методы в Java устарели, но большинство людей советуют мне использовать Calender.

Вот моя проблема. Я пытаюсь создать Calendar, где вы можете выбрать дату и в Java установить дату. Итак, у меня есть

public class someClass
{

    private Date startDate;
    private Date endDate;

    public void setStartDate(Date date) 
    {
        this.startDate = date;
    }

    public void setEndDate(Date date) 
    {
        this.endDate = date;
    }   

    public Date getStartDate()
    {
        return this.startDate;
    }

    public Date getEndDate() 
    {
        return this.end;
    }

}

с кодом RichFaces

<rich:calendar popup="true" mode="ajax"  value="#{someClass.startDate}"/>

Когда я вручную настраиваю его в коде, он, кажется, появляется, но когда я переключаюсь на другую дату, он никогда не устанавливает дату.

Я также видел, что в календарях они говорят мне использовать Calendar. Но когда я набираю Calenders.Time., это не на Java, потому что оно защищено? Как это работает с RichFaces? Может ли RichFaces получить к нему доступ?

1 Ответ

1 голос
/ 03 августа 2011

Что касается конкретного вопроса «Как использовать java.util.Calendar с <rich:calendar>, просто привяжите компонент к Calendar#getTime(), который, в свою очередь, возвращает полноценный java.util.Date.

1009 * Е.Г. *

public class Bean {

    private Calendar startDate;

    public Bean() {
        startDate = Calendar.getInstance(); // You need to prepopulate it.
    }

    // ...
}

с

 <rich:calendar value="#{bean.startDate.time}" />

Но это не решит проблему real о значении, не заданном в модели. Это вызвано чем-то другим. Не вводите в заблуждение устаревшими методами Date. Использование Date в <rich:calendar> прекрасно. Вам не следует использовать эти устаревшие методы, чтобы программно установить год / месяц / день / и т. Д. Даты себя , как в конструкторе бина.

Ваша реальная проблема может иметь много причин. Возможно, <rich:calendar> не был помещен в <h:form>? Возможно, вы вложили несколько <h:form> компонентов? Возможно, у вас где-то есть immediate="true"? Возможно, вы получаете / отлаживаете значение не в тот момент? Etc..etc ..

...