Jsf 为什么f:convertDateTime不转换p:selectOneMenu的标签?
为什么我的Jsf 为什么f:convertDateTime不转换p:selectOneMenu的标签?,jsf,primefaces,converter,Jsf,Primefaces,Converter,为什么我的列表没有转换?项目模式如下所示 2012年3月1日星期四00:00:00 BRT而不是所需的“MM/yyyy” 转换仅适用于项目值,而不适用于项目标签。标签仅使用默认模式显示 您最好的选择是创建一个列表,而不是自己转换项目标签的列表 List<Date> availableDates = ...; List<SelectItem> selectItems = ...; SimpleDateFormat sdf = new SimpleDateFormat("MM
列表
没有转换?
项目模式如下所示
2012年3月1日星期四00:00:00 BRT
而不是所需的“MM/yyyy”
转换仅适用于项目值,而不适用于项目标签。标签仅使用默认模式显示 您最好的选择是创建一个
列表
,而不是自己转换项目标签的列表
List<Date> availableDates = ...;
List<SelectItem> selectItems = ...;
SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy");
for (Date availableDate : availableDates) {
selectItems.add(new SelectItem(availableDate, sdf.format(availableDate)));
}
顺便说一句,此问题并非特定于
,在使用标准
时,您可能会遇到完全相同的问题。请尝试以下方法:
豆角
private SimpleDateFormat sdf;
(...)
@PostConstruct
public void init(){
sdf = new SimpleDateFormat("MM/yyyy");
}
public SimpleDateFormat getSdf(){
return sdf;
}
public void setSdf(SimpleDateFormat sdf){
this.sdf = sdf;
}
xhtml
请编辑并改进您的问题。你忘了详细说明“不起作用”。你到底期望什么?到底发生了什么?它不是按照你的体验方式显示标签吗?还是产生了转换或验证错误?
<f:selectItems value="#{bean.availableDates}" var="date"
itemValue="#{date}" itemLabel="#{of:formatDate(date, 'MM/yyyy')}" />
private SimpleDateFormat sdf;
(...)
@PostConstruct
public void init(){
sdf = new SimpleDateFormat("MM/yyyy");
}
public SimpleDateFormat getSdf(){
return sdf;
}
public void setSdf(SimpleDateFormat sdf){
this.sdf = sdf;
}
<p:selectOneMenu value="#{report003.selectedMes}">
<p:ajax update="pesquisaThomas" listener="#{report003.loadPesquisa()}" />
<f:selectItem itemLabel="[Todos]" itemValue="" />
<f:selectItems value="#{report003.pesquisaMeses}"
var="mes" itemValue="#{mes}"
itemLabel="#{myMB.sdf.format(mes)}" />