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 单个f:viewParam无法验证ViewScope bean上的回发(ajax)请求_Jsf 2_Richfaces_Ajax4jsf - Fatal编程技术网

Jsf 2 单个f:viewParam无法验证ViewScope bean上的回发(ajax)请求

Jsf 2 单个f:viewParam无法验证ViewScope bean上的回发(ajax)请求,jsf-2,richfaces,ajax4jsf,Jsf 2,Richfaces,Ajax4jsf,我正在向facelet页面传递一个请求参数,该页面在相应的preRenderViewevent/listener中处理: <ui:define name="metadata"> <f:metadata> <f:viewParam name="id" value="#{essayDetails.id}" /> <f:event type="preRenderView" listener="#{essayDetails

我正在向facelet页面传递一个请求参数,该页面在相应的
preRenderView
event/listener中处理:

<ui:define name="metadata">
    <f:metadata>
        <f:viewParam name="id" value="#{essayDetails.id}" />
        <f:event type="preRenderView" listener="#{essayDetails.init}"/>
    </f:metadata>
</ui:define>
没有验证错误,行为符合预期。使用f:viewParam和/或preRenderView事件时我做错了什么

提前谢谢

尝试检查init()方法是否为回发:

if (!FacesContext.getCurrentInstance().isPostback()) {
    //do your initilialization
}
试试这个:

<f:viewParam name="id" value="#{essayDetails.id}" required="#{not facesContext.postback}" />

已正确检查,但结果如上所述。唯一有效的方法是使用属性'required=“false'”声明'f:viewParam'。如果元数据部分中包含多个属性为“required=”true“的参数,则回发请求没有问题。
<ui:define name="metadata">
    <f:metadata>
        <f:viewParam name="id" value="#{essayDetails.id}" required="true" />
        <f:viewParam name="v" value="#{essayDetails.v}" required="true" />
        <f:event type="preRenderView" listener="#{essayDetails.init}"/>
    </f:metadata>
</ui:define>
if (!FacesContext.getCurrentInstance().isPostback()) {
    //do your initilialization
}
<f:viewParam name="id" value="#{essayDetails.id}" required="#{not facesContext.postback}" />