0

我使用 primefaces 3.1,在菜单栏中我想添加图标。当用户单击图标时,它将直接到 home.jsf 页面。下面,当用户单击图标时,页面进入索引,但它的 url 似乎不同。谢谢任何帮助。

<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>
4

1 回答 1

2

<h:form>通过任何命令组件(如<h/p:commandButton>, 或<h/p:commandLink>JSF)提交时执行转发而不是重定向。这就是为什么您的 URL 保持不变的原因。只需附加?faces-redirect=true到您的action属性,它就会按预期工作。对于区别,请访问 BalusC 对重定向和导航/转发之间有什么区别以及何时使用什么的回答?以及如何在 JSF 中导航?如何使 URL 反映当前页面(而不是上一个页面)

也就是说,使用命令组件执行导航是一种不好的做法。改用<h:link><h/p:button>组件。它们触发对导航案例结果的获取请求,因此,您的 URL 将发生变化。命令组件旨在触发服务器操作而不是执行普通导航。有关更多信息,请参阅 BalusC 对何时应使用 h:outputLink 而不是 h:commandLink?.

于 2013-10-02T08:44:49.543 回答