【问题标题】:JSF: Submit Post-Form and append GET-ParametersJSF:提交后表单并附加 GET 参数
【发布时间】:2012-11-22 11:01:53
【问题描述】:

我有一个表单,它有 3 个按钮。 (完成、保存、取消)

finish 应该结束任务并导航回任务概览。 save 应该保存所做的更改并导航回 task-details cancel 不应该保存任何内容,而是导航回详细信息。

现在的问题是“保存”:我不想提交表单并调用 actionListener 来进行“保存”。但随后我也想将 id 传递给按钮的“导航结果”

在纯 html 中,它看起来像这样:

<form action="taskDetails?id=5" method ="post">
   ....
</form>

因此所有参数都使用POST 提交,但随后可通过GET 获得ID。

如何使用 JSF 表单实现这一点?

我的按钮目前看起来像:

 <h:form>
 ...
 <p:commandButton action="taskDetails" actionListener="taskEditBean.saveTask()" value="Save" />

 </h:form>

像这样使用 f:params:

 <h:form>
 ...
 <p:commandButton action="taskDetails" actionListener="taskEditBean.saveTask()" value="Save">
      <f:param name="id" value="5" />
 </p:commandButton>

 </h:form>

也使用POST 提交...

【问题讨论】:

  • 已经回答here
  • @Promichel:不同的问题。保存时我不需要 id,但需要将其传递给即将到来的站点。

标签: jsf primefaces


【解决方案1】:

如果我猜对了您的具体功能要求,这就是您所需要的:

<p:commandButton value="Save" action="#{taskEditBean.saveTask}" />

public String saveTask() {
    // ... 

    return "taskDetails?id=5&faces-redirect=true";
}

这将在 POST 之后将重定向发送到所需的 URL。

【讨论】:

  • 我期待这个解决方案(并且已经知道),但问题是,导航结果实际上取决于保存的“任务”(“不同”xhtmls)或其他。所以我试图“避免”使用返回值,但在 xthml 文件中有正确的导航结果。 (是的,我可以将它作为参数传递,但这感觉不“正确”)
猜你喜欢
  • 2016-05-22
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2013-03-03
  • 2013-07-18
相关资源
最近更新 更多