Jsf 单击按钮时,重新初始化当前月份名称

Jsf 单击按钮时,重新初始化当前月份名称,jsf,calendar,initialization,richfaces,Jsf,Calendar,Initialization,Richfaces,在我的richCalendar.jsp页面中,我第一次单击showCurrentMonth按钮并使用rich:calendar显示当前月份。 我选择其他月份 我单击所选月份按钮。我显示所选的月份名称 我的问题是: 我转到任何其他页面。然后我访问richCalendar.jsp,再次单击showCurrentMonth按钮,这次rich:calendar显示的是已经选择的月份,而不是当前月份。 每次单击showCurrentMonth时,我都希望显示当前月份 否则很简单,单击showCurrent

在我的richCalendar.jsp页面中,我第一次单击showCurrentMonth按钮并使用rich:calendar显示当前月份。
我选择其他月份
我单击所选月份按钮。我显示所选的月份名称

我的问题是: 我转到任何其他页面。然后我访问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>
公共级压延豆 {

我第一次访问此页面时会完美地显示当前月份。然后我转到任何其他页面,然后来看此页面,单击showCurrentMonth按钮不显示当前月份

帮帮我。
提前感谢。

尝试从日历控件中删除
popup=“false”
。它将根据您的需要工作

我不知道这种奇怪行为的原因,但我想可能存在一些渲染问题

import java.util.Calendar;
import java.util.Date;        
import javax.faces.component.html.HtmlForm;
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;
}
}