首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >selectOneMenu与selectItems

selectOneMenu与selectItems
EN

Stack Overflow用户
提问于 2010-07-13 08:46:07
回答 1查看 2.1K关注 0票数 1

我正在尝试使用selectOneMenu制作一个过滤器。

我有两种类型,一种是选择,必须过滤显示的结果,还有第二种。

JSF代码:

代码语言:javascript
复制
<div id="box-categories" class="box-left">
            <b>Filter by topic</b>
            <h:selectOneMenu id="cat1" binding="#{interfaceContainer.documentFormContainer.selectOnes['cat1'].selectOne}" rendered="true"  onchange="javascript:refreshResults(); return false;">
                                        <f:selectItems value="#{interfaceContainer.documentFormContainer.selectOnes['cat1'].items}" />
                                </h:selectOneMenu>
            <b>and subtopic</b>
 <h:selectOneMenu id="cat2" binding="#{interfaceContainer.documentFormContainer.selectOnes['cat2'].selectOne}" rendered="true"  onchange="javascript:refreshResults(); return false;" value="#{interfaceContainer.documentFormContainer.selectOnes['cat2'].value}">
                                        <f:selectItems value="#{interfaceContainer.documentFormContainer.selectOnes['cat2'].items}" />
                                </h:selectOneMenu>
        </div>  

但是,当我试图使用以下java代码获取值时,我遇到了一些问题:

代码语言:javascript
复制
public String getStringValue(){
      if ( this.selectOne ==null || this.getSelectOne().getValue()==null)
          return "";
      return this.getSelectOne().getValue().toString();
  }

我意识到问题只是与getValue()有关,因为调试时,this.getSelectOne()在严格的值中,但是this.getSelectOne().getValue()是空的。

知道吗??提前感谢

EN

回答 1

Stack Overflow用户

发布于 2010-07-13 11:33:56

当您试图在更新模型值阶段之前的任何阶段访问它时,UIInput#getValue()将返回null。您显然是在JSF生命周期的“错误”时刻访问它的。无论如何,在JSF中创建依赖的下拉菜单而不借助Ajax是很糟糕的。

长话短说,下面是如何做到这一点:填充子菜单 (有完整的和工作的代码示例)。

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

https://stackoverflow.com/questions/3235499

复制
相关文章

相似问题

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