我正在尝试在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
提交表单时,网址为search.xhtml
,当我从search.xhtml
提交表单时,我会获得带有模式/search.xhtml?searchString=stringSearch&mutation=cs
的预期网址
我错过了什么吗?
编辑:支持bean在视图和闪存之间使用某种组合(bean被保存到两个范围中,并从那个存活的地方检索到)。从调试开始,似乎JSF在将它们保存在bean中之前得到了params(在不正确的用例中)。