Java 在jsf中查找已知的键值对
我在JSF应用程序中使用的bean中有一个整数字段。 整数字段显示进程的状态,可以是0、1或2。 我想做的是自动将这个值映射到相应的字符串表示形式(0-尚未处理,1-正在处理…等等),或者使用jsf以硬编码的方式进行映射。我不喜欢用另一种方式处理它,因为我使用的主要JSFbean包含几个hibernate模型,如果我选择另一种方式,它会变得复杂。Java 在jsf中查找已知的键值对,java,jsf,Java,Jsf,我在JSF应用程序中使用的bean中有一个整数字段。 整数字段显示进程的状态,可以是0、1或2。 我想做的是自动将这个值映射到相应的字符串表示形式(0-尚未处理,1-正在处理…等等),或者使用jsf以硬编码的方式进行映射。我不喜欢用另一种方式处理它,因为我使用的主要JSFbean包含几个hibernate模型,如果我选择另一种方式,它会变得复杂。 谢谢你的帮助 我建议你去 您的属性文件应该如下所示 消息属性 process_in_progress=Process is under prgress
谢谢你的帮助 我建议你去 您的属性文件应该如下所示 消息属性
process_in_progress=Process is under prgress
process_failed=Process failed to execute.
有几种方法
渲染属性
<h:outputText value="Not processed" rendered="#{bean.status == 0}" />
<h:outputText value="Being processed" rendered="#{bean.status == 1}" />
<h:outputText value="Finished processing" rendered="#{bean.status == 2}" />
Map
public class Bean {
private static Map<Integer, String> statuses = new HashMap<Integer, String>();
static {
statuses.put(0, "Not processed");
statuses.put(1, "Being processed");
statuses.put(2, "Finished processing");
}
// Add getter.
}
公共类Bean{
私有静态映射状态=新建HashMap();
静止的{
状态。put(0,“未处理”);
状态。put(1,“正在处理”);
状态。put(2,“已完成处理”);
}
//添加getter。
}
与
基本上是bean.getStatuses().get(bean.getStatus())
它被称为“i18n”,而不是“I18”。@BalusC谢谢,它是类型,据我所知,i18n现象背后的原因是国际化I和n之间有18个字符
public class Bean {
private static Map<Integer, String> statuses = new HashMap<Integer, String>();
static {
statuses.put(0, "Not processed");
statuses.put(1, "Being processed");
statuses.put(2, "Finished processing");
}
// Add getter.
}
<h:outputText value="#{bean.statuses[bean.status]}" />