Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 通过faces-config.xml确定SelectItem数组值_Java_Xml_Jsf_Faces Config - Fatal编程技术网

Java 通过faces-config.xml确定SelectItem数组值

Java 通过faces-config.xml确定SelectItem数组值,java,xml,jsf,faces-config,Java,Xml,Jsf,Faces Config,在JSF页面中,我在标记中有一个标记,我知道我可以从托管bean中确定项目: <f:selectItems value="#{bean.items}" /> SelectItem[] items = {new SelectItem("1","value 1"),new SelectItem("2","value 2")}; SelectItem[]items={new SelectItem(“1”,“值1”),new SelectItem(“2”,“值2”)}; 但我想知道

在JSF页面中,我在
标记中有一个
标记,我知道我可以从托管bean中确定项目:

<f:selectItems value="#{bean.items}" />


SelectItem[] items = {new SelectItem("1","value 1"),new SelectItem("2","value 2")};

SelectItem[]items={new SelectItem(“1”,“值1”),new SelectItem(“2”,“值2”)};
但我想知道是否可以通过XML确定这些值,比如:

<managed-bean>
        <managed-bean-name>bean</managed-bean-name>
        <managed-bean-class>chat.LoginBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>items</property-name>
            <list-entries>
                <value-class>javax.faces.model.SelectItem</value-class>
                <value>value 1</value> <!-- The issue is here, there's a value and a label...what should I do? -->
            </list-entries>
        </managed-property>
</managed-bean>

豆
chat.LoginBean
一场
项目
javax.faces.model.SelectItem
值1

您可能需要以以下方式组合bean:

<managed-bean>
  <managed-bean-class>javax.faces.model.SelectItem</managed-bean-class>
  <managed-bean-name>item1</managed-bean-name>
  <managed-bean-scope>request</managed-bean-scope>
  <managed-property>
    <property-name>label</property-name>
    <value>Foo</value>
  </managed-property>
  <managed-property>
    <property-name>value</property-name>
    <value>foo</value>
  </managed-property>
</managed-bean>
<managed-bean>
  <managed-bean-class>foo.MyBean</managed-bean-class>
  <managed-bean-name>item1</managed-bean-name>
  <managed-bean-scope>request</managed-bean-scope>
  <managed-property>
    <property-name>items</property-name>
    <list-entries>
      <value>#{item1}</value>
    </list-entries>
  </managed-property>
</managed-bean>

javax.faces.model.SelectItem
项目1
要求
标签
福
价值
福
美豆
项目1
要求
项目
#{item1}

请注意,这是未经测试的,但您应该了解这一点。

您需要这样做

<managed-bean>
    <managed-bean-name>myBean</managed-bean-name>
    <managed-bean-class>
        com.MyBean
    </managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
        <property-name>list</property-name>
        <list-entries>
            <value-class>javax.faces.model.SelectItem</value-class>
            <value>#{selectItem1}</value>
            <value>#{selectItem2}</value>
            <value>#{selectItem3}</value>
        </list-entries>
    </managed-property>

</managed-bean>
<managed-bean>
    <managed-bean-name>selectItem1</managed-bean-name>
    <managed-bean-class>javax.faces.model.SelectItem</managed-bean-class>
    <managed-bean-scope>none</managed-bean-scope>
    <managed-property>
        <property-name>label</property-name>
        <property-class>java.lang.String</property-class>
        <value>Value1</value>
    </managed-property>
    <managed-property>
        <property-name>value</property-name>
        <property-class>java.lang.Object</property-class>
        <value>1</value>
    </managed-property>
</managed-bean>
<managed-bean>
    <managed-bean-name>selectItem2</managed-bean-name>
    <managed-bean-class>javax.faces.model.SelectItem</managed-bean-class>
    <managed-bean-scope>none</managed-bean-scope>
    <managed-property>
        <property-name>label</property-name>
        <property-class>java.lang.String</property-class>
        <value>Value2</value>
    </managed-property>
    <managed-property>
        <property-name>value</property-name>
        <property-class>java.lang.Object</property-class>
        <value>2</value>
    </managed-property>
</managed-bean>
<managed-bean>
    <managed-bean-name>selectItem3</managed-bean-name>
    <managed-bean-class>javax.faces.model.SelectItem</managed-bean-class>
    <managed-bean-scope>none</managed-bean-scope>
    <managed-property>
        <property-name>label</property-name>
        <property-class>java.lang.String</property-class>
        <value>Value3</value>
    </managed-property>
    <managed-property>
        <property-name>value</property-name>
        <property-class>java.lang.Object</property-class>
        <value>3</value>
    </managed-property>
</managed-bean>

蚕豆
com.MyBean
一场
列表
javax.faces.model.SelectItem
#{selectItem1}
#{selectItem2}
#{selectItem3}
选择项目1
javax.faces.model.SelectItem
没有一个
标签
java.lang.String
价值1
价值
java.lang.Object
1.
选择项目2
javax.faces.model.SelectItem
没有一个
标签
java.lang.String
价值2
价值
java.lang.Object
2.
选择项目3
javax.faces.model.SelectItem
没有一个
标签
java.lang.String
价值3
价值
java.lang.Object
3.

谢谢,这让我清楚地了解了自己的实际工作,非常符合逻辑!