1

我正在尝试在 Mojjara 中实现 post-redirect-get 模式。我有两个具有相同标题的页面和一个搜索表单。

两个页面都在其通用模板中包含了这两个代码

<f:metadata>
    <f:viewParam name="searchString" value="#{searchBean.searchString}" />
    <f:viewParam name="mutation" value="#{searchBean.mutation}" />
</f:metadata>
...
<h:form id="searchForm">
    <div class="search">
        <p:autoComplete id="autocomplete" minQueryLength="2" queryDelay="250" completeMethod="#{searchBean.complete}" value="#{searchBean.searchString}" />
        <p:watermark for="autocomplete" value="#{msg.search}" />
        <p:commandButton action="search?faces-redirect=true&amp;includeViewParams=true" value="#{msg.searchIt}">
            <f:setPropertyActionListener target="#{searchBean.mutation}" value="#{facesContext.viewRoot.locale}" />
        </p:commandButton>
    </div>
</h:form>

当我提交表单时article.xhtml,url 是search.xhtml,当我提交表单时search.xhtml,我得到预期的带有模式的 URL/search.xhtml?searchString=stringSearch&mutation=cs

我错过了什么吗?

编辑:支持 bean 使用视图和 flash 之间的某种组合(bean 保存在两个范围中,并从它幸存的那个范围中检索)。从调试来看,JSF 似乎在将参数保存在 bean 中之前获取了参数(在不正确的用例中)。

4

0 回答 0