我正在尝试使用primefaces dataExporter导出一些数据,并且我有一个具有人名的列,该名称是指向外部网站的链接。
最初我有以下代码然后我找到了this线程,它说现在数据导出支持h:commandLink
<p:dataTable var="inv" value="#{personBacker.investigators}" id="tbl" rows="50" effect="true">
<p:column filterBy="#{inv.name}" headerText="Investigator" filterMatchMode="contains">
<h:outputLink value="http://example.com/">
<h:outputText value="#{inv.name}" />
</h:outputLink>
</p:column>
</p:dataTable>
然后我将我的代码更改为此,但现在链接不会将我带到example.com。根据我在interwebs上发现的内容,commandLink只能使用我认为的EL表达式。
<p:dataTable var="inv" value="#{personBacker.investigators}" id="tbl" rows="50" effect="true">
<p:column filterBy="#{inv.name}" headerText="Investigator" filterMatchMode="contains">
<p:commandLink action="http://example.com" value="#{inv.name}" />
</p:column>
</p:dataTable>
如何使用h:commandLink或p:commandLink标记链接到外部站点?
答案 0 :(得分:1)
我不知道我的建议是否适用于您使用 DataExporter 的设置,但是从 commandLink / commandButton 调用外部链接我使用以下内容在我的设置中:
<p:commandLink value="external link" ajax="false" action="#{bean.externalLink()}" />
<强>豆:强>
public void externalLink() throws IOException {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
// call external link
String link = "http://www.google.com";
ec.redirect(link);
}
另一种方法是尝试直接将链接设置为 html -tag。如果您在代码中显示URL已经知道,那就不难了:
<a href="http://www.example.com">#{inv.name}</a>
我希望这有帮助,玩得开心!