我只是想知道如何将#top之类的引用附加到commandLink的目标操作上?
基本上在我的情况下,<p:commandLink>
位于<p:dataTable>
并将行值设置为current
- bean的属性:
<p:commandLink ajax="false"
action="#{bean.viewSomePage()}"
value="#{record.name}">
<f:setPropertyActionListener value="#{record}"
target="#{bean.current}" />
</p:commandLink>
在bean中viewSomePage()
- 方法只提供导航目标:
public String viewSomePage() {
return "index?faces-redirect=true";
}
浏览器的地址栏显示index.xhtml
。但是我怎样才能实现像index.xhtml#status
这样的东西?
我想要做的是根据此answer关联<p:tab>
<p:tabView>
。它已经可以使用,但我无法通过<p:commandLink>
链接它。当然,我已经尝试在viewSomePage()
- 方法中简单地附加它,但没有成功。
感谢您的帮助!
答案 0 :(得分:1)
JSF导航处理程序不支持此功能。您最好的选择是使用所需的URL以及所需的片段标识符手动调用ExternalContext#redirect()
:
public void viewSomePage() throws IOException {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect(ec.getRequestContextPath() + "/index.xhtml#status");
}
或者如果您恰好使用JSF实用程序库OmniFaces:
public void viewSomePage() throws IOException {
Faces.redirect("index.xhtml#status");
}