2

我需要2.xhtml在当前 JSF 页面(比如)的新选项卡中打开一个新的 JSF 页面(比如1.xhtml)。我应该使用哪个 JSF 组件?<h:commandLink>还是<h:outputLink>

1.xhtml单击链接以2.xhtml在新选项卡中打开后,我不想失去当前页面的范围。

的豆1.xhtml@ViewScoped。我应该把它改成@RequestScoped?

4

1 回答 1

6

在 HTML 中,通过 GET 请求在新窗口/选项卡中打开给定 URL 的链接将使用<a ... target="_blank">.

在 JSF 中,你可以写下普通的 HTML:

<a href="#{request.contextPath}/2.xhtml" target="_blank">Open 2.xhtml in new window</a>

你也可以使用<h:outputLink>,这只有在你想使用它的rendered属性时才有用:

<h:outputLink value="#{request.contextPath}/2.xhtml" target="_blank">Open 2.xhtml in new window</h:outputLink>

您也可以使用<h:link>which 可以获取导航结果而不是 URL,然后 JSF 将生成正确的 URL:

<h:link value="Open 2.xhtml in new window" outcome="2" target="_blank" />

bean 范围与这一切无关。只需为它所拥有的数据选择正确的。这<h:commandLink>是不合适的,因为它会触发 POST 请求而不是 GET 请求。

也可以看看:

于 2014-01-24T09:11:58.313 回答