【问题标题】:How redirect the url from h:commandLink如何从 h:commandLink 重定向 url
【发布时间】:2012-04-24 21:57:42
【问题描述】:

我没记错还是参数immediate设置为true应该改变浏览器的url? 如果正确,为什么这个链接不能正常工作?



    <h:form>
    <h:commandLink immediate="true" action="/url_page.xhtml" value="Label link"/>
    </h:form>

经过一些研究,我发现了一个问题,作者将字符串“?faces-redirect = true”添加到网址中......它像我一样工作吗?我应该设置其他东西吗? 感谢您的帮助。

P.S.:我也尝试了 h:link 但也许它并没有执行所有的事情,因为在那之后下一页返回了一个 nullpointerException 但 url 改变了我想要的......

解决方案完成:我将 h:commandLink 的操作更改为调用返回 /url_page?faces-redirect=true 的方法,因为我发现 nullpointer 异常进入 servlet-filter... 谢谢@BalusC 和@Matt!

【问题讨论】:

  • h:link 应该可以工作。您的 NPE 是由其他原因引起的,在使用 h:commandLink 进行重定向时,您会遇到完全相同的问题。
  • @BalusC :好吧,如果我使用 h:commandLink 没有任何参数,它可以正常工作,如果我使用 h:link 页面返回 NullPointerException 并且如果我添加 faces-redirect=true 没有任何改变第一种方法...
  • 明确地说,您通过将action="/url_page.xhtml" 更改为action="/url_page.xhtml?faces-redirect=true" 来实现它?
  • @BalusC :我做了一个勘误表,如果我使用 h:link 和 h:commandLink + faces-redirect 的结果是一样的......但是我也尝试从动作/结果参数,没有任何改变......
  • @BalusC :好的,我使用 h:commandLink + faces-redirect 解决了这个问题...有关更多信息,我将编辑我的问题。

标签: jsf-2


【解决方案1】:

我没记错还是参数immediate设置为true应该 改变浏览器的url?

此属性没有其他用途。

您可以使用h:link 进行导航。 h:commandLink 需要一个 bean 方法作为 action 属性。操作方法的结果是导航目标。如果action方法返回null或者是void方法,则当前页面将被重新加载。如果它返回一个字符串,JSF 将接受它并导航到该结果。

如果您想从您的操作方法执行重定向,您可以将?faces-redirect=true 添加到您的结果中,例如

return "login?faces-redirect=true";

【讨论】:

  • 当我写到其他 cmets 时,如果我使用 h:link 或 h:commandLink + faces-redirect=true 页面返回 nullpointerexception...这些选项会在我的应用程序中发生什么变化?跨度>
  • 好的,我找到了问题...我将编辑我的问题以添加更多信息。
猜你喜欢
  • 2022-12-29
  • 1970-01-01
  • 2021-01-26
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
相关资源
最近更新 更多