我使用primefaces 3.1,在菜单栏中我想添加图标。当用户点击图标时,它将直接显示到home.jsf页面。等等,当用户点击图标时,页面转到索引但其网址似乎不同谢谢你的帮助。
<p:menuitem >
<p:commandLink action="home.jsf" >
<p:graphicImage height="24"
width="24"
value="resources/images/home.ico"
style="border:none" />
<p:commandLink>
</p:menuitem>
答案 0 :(得分:2)
在<h:form>
或<h/p:commandButton>
等任何命令组件提交<h/p:commandLink>
后,JSF会执行转发而不是重定向。这就是您的URL保持不变的原因。只需将?faces-redirect=true
附加到您的action
属性,它就会按预期工作。为了区分,请访问BalusC对What is the difference between redirect and navigation/forward and when to use what?和How to navigate in JSF? How to make URL reflect current page (and not previous one)的回答。
也就是说,使用命令组件执行导航是一种不好的做法。请改用<h:link>
或<h/p:button>
组件。它们会触发对导航案例结果的获取请求,因此,您的URL将会更改。命令组件旨在触发服务器操作而不执行纯导航。有关更多信息,请参阅BalusC对When should I use h:outputLink instead of h:commandLink?的回答。