Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Jsf 2 Primefaces SelectOne菜单在重新打开时不会保留对所选项目的焦点_Jsf 2_Primefaces_Selectonemenu - Fatal编程技术网

Jsf 2 Primefaces SelectOne菜单在重新打开时不会保留对所选项目的焦点

Jsf 2 Primefaces SelectOne菜单在重新打开时不会保留对所选项目的焦点,jsf-2,primefaces,selectonemenu,Jsf 2,Primefaces,Selectonemenu,Primefaces p:selectOneMenu组件似乎没有将焦点转移到以前选择的项目。例如,如果我有一个国家菜单,设置如下 <p:selectOneMenu id="countryMenu" value="#{myBean.selectedCountry}"> <f:selectItem value="#{null}" itemLabel="Please select a Country..."/> <f:selectI

Primefaces p:selectOneMenu组件似乎没有将焦点转移到以前选择的项目。例如,如果我有一个国家菜单,设置如下

    <p:selectOneMenu id="countryMenu" value="#{myBean.selectedCountry}">
        <f:selectItem value="#{null}" itemLabel="Please select a Country..."/>
        <f:selectItems value="#{myBean.countries}" var="country" 
                       itemValue="#{country.code}" 
                       itemLabel="#{country.name}"/>
        <p:ajax update="anotherComponent"/>
    </p:selectOneMenu>
我从列表中选择一个国家,然后再次单击菜单,它会从一开始显示国家列表。它确实保留了选定的国家/地区-它只是不向下滚动并聚焦于它

标准的JSF h:SelectOne菜单显示预期的行为-打开时显示先前选择的国家/地区

这有什么诀窍吗?还是一个bug

例如,当菜单有焦点但没有打开菜单时,它如何响应键盘输入(上/下按),这有点令人沮丧

我正在使用:

Primefaces 3.1 玻璃鱼3.1.1 NetBeans 7.1
这不是虫子。您只需要在Country类中重写equalsToObject o和CompareTObject o方法


完成后,它会正常工作。

这不是一个bug。您只需要在Country类中重写equalsToObject o和CompareTObject o方法


完成后,它会正常工作。

如果您现在更新到Primefaces 3.4当前版本,您仍然会有类似的行为,这是不期望的

事件如果第一个项目的noSelectionOption=true,则您会得到相同的行为,这似乎是审查中的一个bug,并会报告和修改。还有一个关于它的论坛

但是您可以尝试使用itemDisabled属性,因为它为我解决了这个问题:

<p:selectOneMenu id="hero" value="#{bean.hero}">
    <f:selectItem itemLabel="Select..." itemDisabled="true" />
    <f:selectItems var="item" value="#{bean.heroes}" itemLabel="#{item.name}" />
</p:selectOneMenu>

我希望这会有所帮助。

如果您现在更新到Primefaces 3.4当前版本,您仍然会有类似的行为,这是不可预料的

事件如果第一个项目的noSelectionOption=true,则您会得到相同的行为,这似乎是审查中的一个bug,并会报告和修改。还有一个关于它的论坛

但是您可以尝试使用itemDisabled属性,因为它为我解决了这个问题:

<p:selectOneMenu id="hero" value="#{bean.hero}">
    <f:selectItem itemLabel="Select..." itemDisabled="true" />
    <f:selectItems var="item" value="#{bean.heroes}" itemLabel="#{item.name}" />
</p:selectOneMenu>

我希望它能有所帮助。

好的,这个问题似乎已经解决了

我使用不同版本的Primefaces运行了一些测试,结果如下:

3.1-不起作用

3.2-不起作用

3.3-未工作之前选择的值短暂闪烁,然后显示第一个菜单项

3.4-按预期工作


注意:从3.3升级到3.4时,我确实需要清除Chrome和Firefox中的浏览器缓存。在我这么做之前,这些项目根本无法选择。

好的,这似乎已经修复

我使用不同版本的Primefaces运行了一些测试,结果如下:

3.1-不起作用

3.2-不起作用

3.3-未工作之前选择的值短暂闪烁,然后显示第一个菜单项

3.4-按预期工作


注意:从3.3升级到3.4时,我确实需要清除Chrome和Firefox中的浏览器缓存。在我这么做之前,这些项目根本无法选择。

好吧,这显然是一个错误,至少PrimeFaces中缺少功能,您可能已经意识到了这一点。除了建议您报告那边的错误,或者重写/覆盖渲染器和/或JavaScripts之外,我们在这里为您做不了什么。仅供参考,您可以在此处搜索和/或报告Primefaces的问题:@maple_shaft是的,我在发布此问题之前查看过,但目前没有与此相关的问题。我只是想在发布一个问题之前确认它确实是一个bug。好吧,3.4版本中仍然存在,所以我提出了一个问题,这显然是一个bug,至少PrimeFaces中缺少功能,你可能也已经意识到了这一点。除了建议您报告那边的错误,或者重写/覆盖渲染器和/或JavaScripts之外,我们在这里为您做不了什么。仅供参考,您可以在此处搜索和/或报告Primefaces的问题:@maple_shaft是的,我在发布此问题之前查看过,但目前没有与此相关的问题。我只是想在发布一个问题之前确认它确实是一个bug。好吧,3.4版本中仍然存在,所以我提出了一个问题,这并不能解释为什么它在h:selectOneMenu中工作。比较器是不必要的,它不会被使用。equalsTo不存在,我假设你的意思是equals。但是如果这一点不存在或者实现得不好,h:selectOneMenu也会失败。在Primefaces上可以看到完全相同的问题,例如。总有一天我会报告的。哦,还有BalusC——谢谢你不知疲倦的回答,我找到的几乎每一篇有用的JSF文章都有你的名字!这并不能解释为什么它在h:selectOneMenu中工作。比较器是不必要的,它不会被使用。equalsTo不存在,我假设你的意思是equals。但是如果这一点不存在或者实现得不好,h:selectOneMenu也会失败。在Primefaces上可以看到完全相同的问题,例如。总有一天我会报告的。哦,还有巴卢斯克-谢谢你不知疲倦的回答,就在附近
我发现的每一篇有用的JSF文章都有你的名字!这些问题似乎不相关,itemDisabled也没有什么区别。我提出了一个问题,希望它能很快得到解决:这些问题似乎不相关,而itemDisabled也没有什么区别。我提出了一个问题,希望能尽快解决: