インライン モードの Primefaces カレンダーは、バグのある方法で表示されます。
コード:
xHTML
<p:tab title="Logs">
<p:panelGrid columns="2" cellpadding="2" styleClass="logsGrid">
<p:accordionPanel id="accordionLogs" styleClass="logsAccordion">
<p:tab title="Log1"></p:tab>
<p:tab title="Log2"></p:tab>
</p:accordionPanel>
<p:calendar value="#{dateBean.date}" mode="inline" styleClass="logsCalendar">
<p:ajax event="dateSelect" listener="#{dateBean.handleDateSelect}" update=":growlMain" />
</p:calendar>
</p:panelGrid>
</p:tab>
クラス:
package com.swql.sprint;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;
@ManagedBean
public class DateBean {
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public void handleDateSelect(SelectEvent event) {
Date date = (Date) event.getObject();
FacesMessage msg = null;
SimpleDateFormat format = new SimpleDateFormat("d/M/yyyy");
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Date Picked", format.format(date));
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
この問題を解決するにはどうすればよいですか?
€同上:
理由はすでにわかっています: p:panelGrid は何らかの形でカレンダーのコンテンツのサイズを変更します。おそらく修正は、カレンダーを他のコンテナに入れることでしょう。試して報告します。
€dit2:
カレンダーをパネルに配置しても問題は解決しません。