gpt4 book ai didi

jsf - 为什么 f :convertDateTime not convert labels of p:selectOneMenu?

转载 作者:行者123 更新时间:2023-12-04 22:25:41 24 4
gpt4 key购买 nike

为什么我的List<Date>没有得到转换? <p:selectOneMenu>项目模式看起来像 Thu Mar 01 00:00:00 BRT 2012而不是所需的“MM/yyyy”。

<p:selectOneMenu value="#{report003.selectedMes}">
<p:ajax update="pesquisaThomas" listener="#{report003.loadPesquisa()}" />
<f:selectItem itemLabel="[Todos]" itemValue="" />
<f:convertDateTime pattern="MM/yyyy" />
<f:selectItems value="#{report003.pesquisaMeses}" />
</p:selectOneMenu>

最佳答案

转换仅适用于项目,不适用于项目标签。标签只是使用默认的 Date#toString() 呈现模式。

你最好的选择是要么创建一个List<SelectItem>而不是 List<Date>其中你自己转换项目标签,

List<Date> availableDates = ...;
List<SelectItem> selectItems = ...;
SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy");

for (Date availableDate : availableDates) {
selectItems.add(new SelectItem(availableDate, sdf.format(availableDate)));
}

使用<f:selectItems var>itemValue 中使用 EL 函数.例如,OmniFaces of:formatDate() (或 homegrow 一个)。

<f:selectItems value="#{bean.availableDates}" var="date" 
itemValue="#{date}" itemLabel="#{of:formatDate(date, 'MM/yyyy')}" />

这个问题不是<p:selectOneMenu> 特有的, 使用标准 <h:selectOneMenu> 时,您会遇到完全相同的问题.

关于jsf - 为什么 f :convertDateTime not convert labels of p:selectOneMenu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com