【问题标题】:commandButton double action : save and redirect to other pagecommandButton 双重动作:保存并重定向到其他页面
【发布时间】:2016-02-18 20:42:22
【问题描述】:

我想在点击保存按钮后,数据应该被保存并且用户被重定向到 corbeille 页面。这是我目前的实现:

<a4j:commandButton styleClass="boutonAction buttonSaveDossierAppel"
value="#{messages['save.btn.save.label']}"
update="editForm"
action="#{consultDossier.save()}"                               
disabled="#{editDossier.isEditAccess() == 'false'}"
ajaxSingle="false" immediate="false" limitToList="true"                                                         
reRender="msg" />

我试过这个:

<a4j:commandButton styleClass="boutonAction buttonSaveDossierAppel"
value="#{messages['save.btn.save.label']}"
update="editForm"
action="#{consultDossier.save()}"
action="#{commonNavigationAction.manageAccessibility('E53CORBEILLE')}"                          
disabled="#{editDossier.isEditAccess() == 'false'}"
ajaxSingle="false" immediate="false" limitToList="true"                                                         
reRender="msg" />

它不工作!

我该怎么做?

【问题讨论】:

  • 只有一个动作。将保存方法的返回类型设为字符串。保存值后,将路径返回到欢迎页面或将导航案例返回到欢迎页面。例如返回“welcome.xhtml?redirect-faces=true”
  • 或者你可以在 actionListener 中做 save() 并且有 action="welcome.xhtml?redirect-faces=true"
  • @Mahendran:问题中没有任何内容暗示 OP 正在使用 JSF 2.x。此外,reRender 属性暗示 RichFaces 3.x,强烈建议 JSF 1.x。问题中的 [jspx] 标记仅进一步确认了 JSF 1.x,因为 JSP 在 JSF 2.x 中已被弃用,没有一个理智的开发人员会在 JSF 2.x 中使用它。在建议 JSF 2.x 特定解决方案之前,最好先询问 OP 他正在使用哪个 JSF 版本。
  • @BalusC 哦,谢谢。我在richfaces方面的经验不足。所以我在这里大声思考。那么 h:outputLink 还是导航案例?

标签: javascript jsf-1.2 ajax4jsf jspx


【解决方案1】:

最简单的方法:只需在您的consultDossier.save() 方法中返回您的欢迎页面完整路径。

public String save(){
  //Save....//
  return "welcomepage.xhtml"
}

【讨论】:

  • OP 要求执行重定向,而不是转发。
  • 我同意 BalusC,我想通过我的 jspx 来管理这个
【解决方案2】:

要启用页面重定向,只需在 bean 返回的字符串末尾添加“?faces-redirect=true”。

public String save(){
  //Save....//
  return "welcomepage.xhtml?faces-redirect=true"
}

正如 BallusC 所指出的,此答案仅适用于 JSF 2.x,抱歉。 您可以使用 a4j 按钮的 onComplete 属性来执行重定向,您使用的是哪个版本的 JSF?

tag documentation

【讨论】:

  • 此答案仅适用于 JSF 2.x。 OP 没有暗示/确认他正在使用 JSF 2.x。
  • 由于我是 JSF 新手,我没有使用过 2.0 之前的版本,因此无法为您提供太多帮助。关于a4j按钮,上面说了2个动作都不行,可以试试把第二个改成onComplete属性,请求完成后会执行它的方法。祝你好运,希望你的问题能尽快解决
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-01
  • 2012-03-16
  • 1970-01-01
  • 2018-07-10
  • 2017-10-26
  • 1970-01-01
相关资源
最近更新 更多