我正在尝试在 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&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 中之前获取了参数(在不正确的用例中)。