gpt4 book ai didi

java - 根据属性文件渲染SelectItem

转载 作者:行者123 更新时间:2023-11-30 05:05:14 25 4
gpt4 key购买 nike

我有一个 selectOneRadio 菜单,其中包含一些 selectItem。我想显示基于属性文件的选择。例如,如果商店没有信用卡读卡器,那么我不会显示信用选项。应该有一个配置/属性文件指定显示什么和不显示什么。

有办法实现吗?我假设我需要将属性文件读入支持 bean,然后拥有类似“渲染”属性的内容。但是,我刚刚尝试过,“渲染”似乎不适用于 selectItem。

<h:selectOneRadio id="selectedPaymentMethod" layout="pageDirection" 
value="#{selectPaymentMethodAction.selectedPaymentMethod}">

<f:selectItem itemValue="online" itemLabel="#{paymentMsg['payment.online.lbl']}"/>
<f:selectItem itemValue="cash" itemLabel="#{paymentMsg['payment.cash.lbl']}"/>
<f:selectItem itemValue="credit" itemLabel="#{paymentMsg['payment.credit.lbl']}"/>
<f:selectItem itemValue="debit" itemLabel="#{paymentMsg['payment.debit.lbl']}"/>

</h:selectOneRadio>

最佳答案

使用<f:selectItems>你用 List<SelectItem> 喂它基于捆绑文件。这样您就可以使用常用的 Java 代码来控制是否应添加该项目。

例如

<f:selectItems value="#{selectPaymentMethodAction.paymentMethods}" />

private List<SelectItem> paymentMethods; // +getter

public Bean() {
paymentMethods = new ArrayList<SelectItem>();
ResourceBundle bundle = ResourceBundle.getBundle("com.example.Messages", FacesContext.getCurrentInstance().getViewRoot().getLocale());

if (condition) {
paymentMethods.add(new SelectItem("online", bundle.getString("payment.online.lbl")));
}

// ...
}

关于java - 根据属性文件渲染SelectItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5332829/

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