首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过faces-config.xml确定SelectItem数组值

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

Stack Overflow用户
提问于 2013-12-17 10:24:16
回答 2查看 280关注 0票数 1

在JSF页面中,我在一个<f:selectItems/>标记中有一个<h:selectOneMenu/>标记,并且我知道我可以从托管bean中确定条目:

代码语言:javascript
复制
<f:selectItems value="#{bean.items}" />


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

但我想知道是否可以通过XML确定这些值,如下所示:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-17 10:54:10

你需要这样做..。

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2013-12-17 10:48:11

您可能需要以这种方式编写bean:

代码语言:javascript
复制
<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>

注意,这是未经测试的,但你应该知道这个想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20631561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档