Реинициализировать название текущего месяца, когда я нажимаю кнопку - PullRequest
1 голос
/ 07 января 2011

На моей richCalendar.jsp странице первый раз, когда я нажимаю кнопку showCurrentMonth и отображаю текущий месяц с помощью rich: calendar.
я выбираю другой месяц
я нажимаю кнопку SelectedMonth .Я показываю название выбранного месяца.

Моя проблема: Я перехожу на любую другую страницу.затем я захожу на сайт richCalendar.jsp и снова нажимаю кнопку showCurrentMonth , на этот раз rich: calendar показывает уже выбранный месяц вместо текущего месяца.
Каждый раз, когда я хочу показать текущий месяц, янажмите showCurrentMonth .

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

richCalendar.jsp

<body>
 <h:form id="calendarForm" binding="#{CalenderBean.initForm}">               
    <rich:panel>                                      
        <a4j:outputPanel id="calendarOutputPanel">              
             <h:panelGrid>                                                      
                 <a4j:commandButton value="showCurrentMonth" 
                                    action="#{CalenderBean.showCurrentMonthAction}"
                                    reRender="monthlyPanelGridId,monthlyCalendarId,calendarOutputPanel"/>                                                          

               <h:panelGrid id="monthlyPanelGridId" rendered="#{CalenderBean.monthlyCalendarRendered}" >
                   <rich:calendar boundaryDatesMode="scroll"
                                  id="monthlyCalendarId" 
                                  showWeekDaysBar="false"
                                               oncurrentdateselected="event.rich.component.selectDate(event.rich.date)"
                                  showFooter="false"
                                  popup="false"
                                  value="#{CalenderBean.selectedMonth}"/>

               </h:panelGrid>

               <h:panelGrid id = "SearchButtonGrid">
                  <a4j:commandButton id="SelectedMonth" 
                      value="SelectedMonth"
                      action="#{CalenderBean.selectedMonthButtonAction}"
                      reRender="calendarOutputPanel"/>

                     <h:outputText value="#{CalenderBean.selectedMonthName}" />

               </h:panelGrid>
          </h:panelGrid>                                                               
   </a4j:outputPanel>
 <rich:panel></h:form></body>

CalenderBean.java

import java.util.Calendar;
import java.util.Date;        
import javax.faces.component.html.HtmlForm;

открытый класс CalenderBean {

private HtmlForm initForm;    
private boolean monthlyCalendarRendered;
private Date selectedMonth;
private String selectedMonthName;

public CalenderBean()
{
}

public String showCurrentMonthAction()
{
    monthlyCalendarRendered = true;

    Calendar calendar = Calendar.getInstance();
    int startingDate = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
    calendar.set(Calendar.DATE, startingDate);
    selectedMonth = calendar.getTime();       

    return "";
}

public String selectedMonthButtonAction()
{        
    selectedMonthName = selectedMonth.toString();
    return "";
}

public HtmlForm getInitForm()
{       
    selectedMonth = null;
    monthlyCalendarRendered = false;  

    return initForm;
}


public void setInitForm(HtmlForm initForm){
    this.initForm = initForm;
}

public boolean isMonthlyCalendarRendered(){
    return monthlyCalendarRendered;
}

public void setMonthlyCalendarRendered(boolean monthlyCalendarRendered){
    this.monthlyCalendarRendered = monthlyCalendarRendered;
}

public Date getSelectedMonth(){
    return selectedMonth;
}

public void setSelectedMonth(Date selectedMonth){
    this.selectedMonth = selectedMonth;
}

public String getSelectedMonthName(){
    return selectedMonthName;
}

public void setSelectedMonthName(String selectedMonthName){
    this.selectedMonthName = selectedMonthName;
}
}

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

Помогите мне.Заранее спасибо.

1 Ответ

0 голосов
/ 07 января 2011

Попробуйте удалить popup = "false" из календаря. Это будет работать, как вы хотите.

Не знаю причину этого странного поведения, но я думаю, что есть некоторая проблема с рендерингом.

...