Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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 &引用;onchange";不适用于PrimeFaces 3.2中的selectOneMenu_Jsf_Primefaces - Fatal编程技术网

Jsf &引用;onchange";不适用于PrimeFaces 3.2中的selectOneMenu

Jsf &引用;onchange";不适用于PrimeFaces 3.2中的selectOneMenu,jsf,primefaces,Jsf,Primefaces,我的selectOneMenu没有触发onchange事件。代码如下: <p:selectOneMenu id="select_preset" value="#{JobMgmtBean.presetGroupName}" valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}" onchange="submit

我的selectOneMenu没有触发onchange事件。代码如下:

 <p:selectOneMenu id="select_preset" 
                  value="#{JobMgmtBean.presetGroupName}" 
                  valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}" 
                  onchange="submit();">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
</p:selectOneMenu>

SelectOne菜单填充得很好,我可以选择不同的值。但我希望在更改选择后,页面将被刷新,即重新创建支持bean(RequestScoped)(onchange=“submit();”)?但更改selectOneMenu中的选择时不会发生任何变化

此外,不调用值更改侦听器PresetGroupChangeEvent()

我哪里出错了


我使用的是Tomcat 7.0.25+MyFaces 2.1.6+PrimeFaces 3.2。

为什么不使用p:ajax添加更新属性?我认为重新加载组件比刷新组件更好,而且您可以只重新加载所需的组件。但如果您仍想刷新页面,也可以使用javascript:

<p:selectOneMenu id="select_preset" value="#{JobMgmtBean.presetGroupName}" onchange="window.location.reload();">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
</p:selectOneMenu>

仅用于更新必要的组件:

 <p:selectOneMenu id="select_preset" value="#{JobMgmtBean.presetGroupName}">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
    <p:ajax event="change" update="@form" />
</p:selectOneMenu>

尝试删除

onchange="submit();"
加上

<p:ajax update="@this"/>

尝试使用primefaces中的ajax,只刷新您想要刷新的内容

<p:selectOneMenu id="select_preset" 
                  value="#{JobMgmtBean.presetGroupName}" 
                  valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}">
        <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
        <p:ajax process="select_preset" partialSubmit="true" event="valueChange"  update="yourComponentName"/>
    </p:selectOneMenu>


现在为我更改Ajax已经太迟了。你认为
onchange=“submit();
有什么不对吗?试试onchange=“this.submit();“谢谢,但是
onchange=“this.submit();“
没有帮助。这
onchange=“window.location.reload();“
工作正常,它会刷新页面,但我不确定这是否与
submit()
相同。我仍然没有收到任何值更改侦听器事件…为什么?:-(.很抱歉,没有查看您的页面,我无法回答您的问题,但我建议只使用一个h:form(如果您没有使用它:))和属性:prependId=“false“。请检查您的逻辑,以确保它不是因为requestscope而对每个http请求进行垃圾处理。我会尝试使用第一个sessionscope或viewscope来查看页面功能。如果presetGroupList不是字符串列表,请尝试添加itemlabel和item value属性。请检查类似的问题:您是否尝试使用h:selectOneMenu?同时,我切换到Ajax,效果很好。如果以后需要,我会检查你的答案。谢谢
import javax.faces.event.ValueChangeEvent;
public void PresetGroupChangeEvent(ValueChangeEvent event) { }
<p:selectOneMenu id="select_preset" 
                  value="#{JobMgmtBean.presetGroupName}" 
                  valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}">
        <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
        <p:ajax process="select_preset" partialSubmit="true" event="valueChange"  update="yourComponentName"/>
    </p:selectOneMenu>