【问题标题】:<p: ​selectOneMenu /> <f: selectItems> do not appear<p:​selectOneMenu /> <f:selectItems> 不出现
【发布时间】:2017-12-14 19:08:30
【问题描述】:

我正在使用jsf开发一个java应用程序并将&lt;p: ​​selectOneMenu /&gt;组件primefaces放在我的项目中,但是&lt;p: ​​selectOneMenu /&gt; &lt;f: selectItems&gt;组件项没有出现并且&lt;selectOneMenu /&gt;已经消失了

更新

 <h:panelGroup layout="block" styleClass="tamanho">
          <p>Tamanho:</p> <p:selectOneMenu id="tamanhos" value="#{tamanho.tamanho}" styleClass="tamanho" effect="fold" editable="true">
        <f:selectItem itemValue="#{null}" itemLabel="-- select one --" />
               <f:selectItems value="#{tamanho.tamanhos_roupas}" />

    </p:selectOneMenu>

 @ManagedBean(name="tamanho")
 @RequestScoped
 public class Tamanho {

private String tamanho;
private List<SelectItem> tamanhos_roupas; // +getter (no setter necessary)

@PostConstruct
public void init() {
 tamanhos_roupas = new ArrayList<SelectItem>();
    tamanhos_roupas.add(new SelectItem("PP", "PP"));
    tamanhos_roupas.add(new SelectItem("P", "P"));
    tamanhos_roupas.add(new SelectItem("M", "M"));
    tamanhos_roupas.add(new SelectItem("G", "G"));
   tamanhos_roupas.add(new SelectItem("GG", "GG"));
   }



 public String getTamanho() {
    return tamanho;
 }

 public void setTamanho(String tamanho) {
    this.tamanho = tamanho;
 }

public List<SelectItem> getTamanhos_roupas() {
    return tamanhos_roupas;
}
}

看看primefaces的复印机怎么样,消失了&lt;p:selectOneMenu/&gt;

page

【问题讨论】:

  • 查看这个关于这个主题的维基stackoverflow.com/tags/selectonemenu/info
  • 我看过 wiki,现在我用列表实现了我的 selectMenu,但现在它显示了菜单,但没有用 wiki 列表的代码更新问题以及页面如何现在
  • 您在日志中看到任何异常吗?
  • 我看了日志,没有异常
  • 但我正在实现动态列表,即价值项目为空,项目标签就是这个,项目标签 = "- 选择一个 -"

标签: java jsf primefaces jsf-2


【解决方案1】:

我假设“#{tamanho.tamanhos_roupas}”是一个已经包含值的列表,所以你需要做的是添加 'var', 'itemValue' 'itemLabel' 在您的 selectItems 标记中。

'var' 属性是每次迭代中列表元素的变量名称,'itemValue' 是 #{tamanho.tamanho} 值选择一个选项后,'itemLabel' 是用户将阅读以识别该选项的内容。

<h:panelGroup layout="block" styleClass="tamanho">
    <p>Tamanho:</p> <p:selectOneMenu id="tamanhos" value="#{tamanho.tamanho}"
                        styleClass="tamanho" effect="fold" editable="true">
                        <f:selectItem itemValue="#{null}" itemLabel="-- select one --" />
                        <f:selectItems value="#{tamanho.tamanhos_roupas}" var="tamanho" 
                            itemValue="#{tamanho}" itemLabel="#{tamanho.stringNome}" />
                    </p:selectOneMenu>

看,您的代码编写方式只是向 SelectOneMenu 提供了您要迭代的项目的信息,但您从不告诉他这些项目的名称和值是什么。

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 2016-04-11
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多