JSF视图参数和h:form动作

JSF视图参数和h:form动作,jsf,Jsf,这个问题是“扩展”下面的帖子 请告诉我,我正在创建一个自定义URL,并在对话框中打开该URL。 URL示例“test.html?id=123” 我想将“id=123”部分插入到h:form操作中,以便它返回到具有额外参数“id=123”部分的同一视图 我遵循了上面的帖子,研究了第三种解决方案,即扩展ViewHandlerWrapper的自定义ViewHandler 我正在修改动作,表单被重定向到同一来源(直到现在它还可以工作) 第一期 假设我有下面的xhtml页面 <f:metadata

这个问题是“扩展”下面的帖子

请告诉我,我正在创建一个自定义URL,并在对话框中打开该URL。 URL示例“test.html?id=123”

我想将“id=123”部分插入到h:form操作中,以便它返回到具有额外参数“id=123”部分的同一视图

我遵循了上面的帖子,研究了第三种解决方案,即扩展ViewHandlerWrapper的自定义ViewHandler

我正在修改动作,表单被重定向到同一来源(直到现在它还可以工作)

第一期 假设我有下面的xhtml页面

<f:metadata>
    <f:event type="preRenderView" listener="#{bean.init}" />
    <f:viewParam name="id" value="#{bean.id}"/>
</f:metadata>

<h:form>
    ...
    ...
</h:form>

...
...
  • 当我发布上述内容时,我在后端获得了正确的id值
  • 如果我重新提交帖子,我会得到空值,但是url保持不变(test.html?id=xxx)
  • 无法理解为什么我在第二次提交时得到空值
  • 第二个问题是,当我验证了表单并且一切正常时,我的submit方法返回一个新的url“test.html?force redirect=true…”,但这不会发生,相反,url与在h:form操作中输入的url相同(如果我使用新url进行自定义重定向,那么它会工作,并且我会被重定向到“test.html?faces redirect=true…”)

    我的问题,我想是一个理论问题,这是假设的行为吗

    谢谢,
    Dimman

    您的第一个问题不清楚。请详细说明。您的第二个问题在参数名称中有输入错误。您应该使用
    faces redirect=true
    。这是一个疏忽吗?@BalusC感谢您的快速评论,我编辑了我的问题,输入错误,是faces redirect=true。我无法根据信息重现您的问题到目前为止已经漫游过了(Mojarra 2.1.13+Tomcat 7.0.30)。也许您的对话框实际上处于不同的视图中?对话框会在一个新窗口中打开,但会一次又一次地重定向到相同的窗口(说的是相同的,我指的是新打开的窗口)。如果有帮助的话,我会在回家时跳过代码。再次感谢