在我的JSF应用程序与Primeface 5.3中,我有一个SseltOneMenu,其中包含SseltItemGroup条目,其中条目需要翻译。
我的XHTML代码片段:
<p:selectOneMenu id="status" value="#{bean.status}">
<f:selectItems value="#{bean.statusItems}"
var="status"
itemLabel="#{bundle[status.label]}"
itemValue="#{status}"/>
</p:selectOneMenu>
这里我使用“#{bundle[status.label]}”
进行翻译,但始终会显示Bean类中生成的标签,而不会显示我的资源包中已翻译的字符串!
我的Bean类代码片段:
public class Bean {
@PostConstruct
public void init() {
SelectItemGroup g1 = new SelectItemGroup("status.offerPhase");
g1.setSelectItems(
new SelectItem[]{
new SelectItem("untreated", "status.offerPhase.untreated"),
new SelectItem("In Progress", "status.offerPhase.untreated.inProgress"),
});
SelectItemGroup g2 = new SelectItemGroup("status.ongoing");
g2.setSelectItems(
new SelectItem[]{
new SelectItem("Order received", "status.ongoing.orderReceived"),
new SelectItem("Ongoing construction site", "status.ongoing.ongoingConstructionSite"),
});
SelectItemGroup g3 = new SelectItemGroup("status.completed");
g3.setSelectItems(
new SelectItem[]{
new SelectItem("Finished", "status.completed.finished"),
new SelectItem("Archived", "status.completed.archived"),
});
statusItems = new ArrayList<>();
statusItems.add(g1);
statusItems.add(g2);
statusItems.add(g3);
}
private List<SelectItem> statusItems;
public List<SelectItem> getStatusItems() {
return statusItems;
}
}
它也不工作,如果我不使用像这样的选择对象组:
@PostConstruct
public void init() {
statusItems = new ArrayList<>();
statusItems.add(new SelectItem("untreated", "status.offerPhase.untreated"));
statusItems.add(new SelectItem("In Progress", "status.offerPhase.untreated.inProgress");
}
使用这样的枚举工作:
<p:selectOneMenu id="status2" value="#{bean.statusEnum}">
<f:selectItems value="#{bean.statusEnum}"
var="status"
itemValue="#{status}"
itemLabel="#{bundle[status.name()]}"/>
</p:selectOneMenu>
public enum Status {
STATUS_UNTREATEFD, STATUS_IN_PROGRESS, STATUS_COMPLETED
}
public Status[] getStatusEnum() {
return Status.values();
}
捆绑包属性:
STATUS_UNTREATED=Untreated
STATUS_IN_PROGRESS=In Progress
status.offerPhase.untreated=Untreated
status.offerPhase.inProgress=In Progress
我到底做错了什么?
在这里输入code
当使用javax.faces.model.SseltItem
作为模型值时,var
将表示其值
,而不是SseltItem
本身。项目值已经表示为SseltItem
实例本身的value
,并且项目标签已经表示为SseltItem
实例本身的标签
。
换句话说,当提供SseltItem
的列表或数组时,您根本不需要var
、itemLabel
和itemValue
。
<f:selectItems value="#{bean.statusItems}" />
至于i18n'ing标签,抓取/注入bean中的资源包#{bundle}
,并在那里完成工作。例如。
new SelectItemGroup(bundle.getString("status.offerPhase"));
我有一个提交表单,并希望显示一行,如果选择的关系是儿子或女儿,他们输入生日。 > 最初我没有使用p:row或p:column,而是使用面板网格上的columns属性。但是基于这个如何通过BalusC呈现 ,我知道我需要一个包装器组件,这就是为什么我使用p:row路由的原因。 但是,有没有一种更干净的方法可以不在文本输入上使用所有的p:rows和额外的ajax呢?
我试图通过从展示中获取代码来使primeface元素出现在我的页面上,菜单在一些修改后运行良好,但selectonemenu拒绝出现。 它在布局单元中没有显示任何内容。这是我的xhtml代码:
问题内容: 我打算将Java的标准i18n系统与ChoiceFormat类一起使用复数形式,但随后意识到它不能处理某些语言(例如波兰语)的复数规则。如果它只处理类似于英语的语言,那似乎毫无意义。 有哪些选项可以实现正确的复数形式?使用它们的利弊是什么? 问题答案: 好了,您已经正确标记了问题,所以我假设您了解ICU的一两件事。 使用ICU,您有两种选择来正确处理复数形式: PluralRules,
关于我的上一个问题(bootstrap上的下拉菜单不起作用),我正在为li下拉菜单的子菜单构建一个子菜单。这意味着它是嵌套的。银行菜单下有交易下拉菜单,交易下拉菜单下有不同类型交易的菜单。顺便说一下,我已经成功地创建了它,但是在悬停期间,“事务”模块的子菜单出现在事务菜单的前面,阻止了作为事务的父菜单。在悬停期间,如何避免它并将其放置在事务菜单的右侧?不管怎样,我已经使用了“右下拉菜单”,但它不会
点下鼠标右键后呼叫的 KAG 的游戏界面。 例如使用右键来调出存储/读取画面。 总之先上范例 调用右键菜单的指令是 rclick 。使用这个指令、可以设定点下右键后呼叫的剧本段落。此外,也可以不使用呼叫(调用菜单后,使用return可以返回游戏),而是直接跳转到某个标签(右键跳跃后无法返回,等同于jump)。 例如,在 rlick.ks 里写入以下内容。 例: *rclick @rclic
问题内容: 我想使用数据库存储i18n键/值对,以便我们可以在运行时修改/重新加载i18n数据。有人做过吗?还是有人对如何实现这一点有想法?我已经阅读了几个相关的主题,但是还没有看到可行的解决方案。 我专门指的是可以与jstl标记一起使用的东西,例如 我认为这将涉及扩展ResourceBundle,但是当我尝试这样做时,我遇到了与jstl标记获取资源包的方式有关的问题。 问题答案: 您是否只是问如