我有一個簡單的問題,但我沒有找到它的解決方案。 我有一個簡單的p:selectCheckboxMenu
,我想使用selectedDates後點擊按鈕。 「Invaild值」:SelectManyCheckbox選擇轉換日期
我f:convertDateTime
<h:form id="mainform">
<p:panelGrid columns="2">
<p:selectCheckboxMenu label="Date" value="#{myBean.selectedDates}">
<f:selectItems value="#{myBean.dates}" var="date" itemValue="#{date}" itemLabel="#{myBean.convertDate(date)}"/>
<f:convertDateTime type="date" pattern="dd-MM-yyyy"/>
</p:selectCheckboxMenu>
<p:commandButton value="Test" actionListener="#{myBean.printDates}"/>
</p:panelGrid>
但比我得到一個錯誤 - 消息試過。
比我嘗試了轉換:
@FacesConverter("myDateConverter")
public class MyDateConverter extends DateTimeConverter{
public MyDateConverter(){
setPattern("MM/dd/yyyy");
}}
和
<p:selectCheckboxMenu label="Date" value="#{myBean.selectedDates}" converter="myDateConverter">
但同樣的錯誤消息。當我使用沒有轉換器我得到「字符串」 - 我的日期列表中的值,因爲類型擦除。
問:我如何得到所選日期爲日期?
這裏是我的bean的完整性:
@ManagedBean(name = "myBean")
@ViewScoped
public class MyBean implements Serializable {
private List<Date> dates;
private List<Date> selectedDates;
private SimpleDateFormat dateFormat;
@PostConstruct
public void init() {
System.out.println("POST CONSTRUCT!");
dateFormat = new SimpleDateFormat("yyyy.MM.dd");
dates = new ArrayList<Date>();
dates.add(new Date());
}
/**
*
*/
public void printDates(){
for(Date d : selectedDates){
System.out.println(d);
}
}
/**
*
* @param date
* @return
*/
public String convertDate(Date date){
return dateFormat.format(date);
}
嘗試從'f:selectItems'中刪除'itemValue'和'itemLabel'。 – Anas
我有同樣的效果 – pL4Gu33