Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jsf中查找已知的键值对_Java_Jsf - Fatal编程技术网

Java 在jsf中查找已知的键值对

Java 在jsf中查找已知的键值对,java,jsf,Java,Jsf,我在JSF应用程序中使用的bean中有一个整数字段。 整数字段显示进程的状态,可以是0、1或2。 我想做的是自动将这个值映射到相应的字符串表示形式(0-尚未处理,1-正在处理…等等),或者使用jsf以硬编码的方式进行映射。我不喜欢用另一种方式处理它,因为我使用的主要JSFbean包含几个hibernate模型,如果我选择另一种方式,它会变得复杂。 谢谢你的帮助 我建议你去 您的属性文件应该如下所示 消息属性 process_in_progress=Process is under prgress

我在JSF应用程序中使用的bean中有一个整数字段。 整数字段显示进程的状态,可以是0、1或2。 我想做的是自动将这个值映射到相应的字符串表示形式(0-尚未处理,1-正在处理…等等),或者使用jsf以硬编码的方式进行映射。我不喜欢用另一种方式处理它,因为我使用的主要JSFbean包含几个hibernate模型,如果我选择另一种方式,它会变得复杂。
谢谢你的帮助

我建议你去

您的属性文件应该如下所示

消息属性

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]}" />