如何从h:commandLink重定向url

时间:2012-04-12 14:22:30

标签: jsf-2

我是否记得正确或立即设置为true的参数应该更改浏览器的网址? 如果它是正确的,为什么这个链接不能正常工作?



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

经过一番研究后,我发现了一个问题,即作者添加了字符串&#34;?faces-redirect = true&#34;到网址......它会像我一样工作吗?我应该设置其他东西吗? 谢谢你的帮助。

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

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

1 个答案:

答案 0 :(得分:13)

  

我是否记得正确或者参数立即设置为true应该   更改浏览器的网址?

此属性没有不同的目的。

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

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

return "login?faces-redirect=true";