将字符串转换为可点击的 Link
Convert String to Clickable Link
我正在创建一个显示用户历史记录的网页。写在 Java 中,我有一个 pojo,其中包含我的 jsf 通过 bean 注入检索的属性。问题:其中一个值是 url。目前,字符串是一个很长的 url 但不可点击。还要注意,这些值(字符串)在 ArrayList 中。如何分配包含 url 的字符串值并输出可点击的 url?
userHistoryDetails.completeData bean 可能看起来像这样 (sudo):
[{status=complete,userid=123,reportUrl=http://www.reporturl.com}]
在我的 jsf 文件中创建的 table 示例。其中 #{cRow[cColModel.value]}
在 table 中使用其各自的 header 值创建一行。
<ace:dataTable id="completedTable"
value="#{userHistoryDetails.completeData}" var="cRow"
paginator="true" rows="50" paginatorPosition="both"
emptyMessage="NO RECORDS TO DISPLAY">
<c:forEach items="#{userHistoryDetails.userHistoryHeaders}"
var="cColModel">
<ace:column headerText="#{cColModel.headerText}">
#{cRow[cColModel.value]}
</ace:column>
</c:forEach>
</ace:dataTable>
如果这没有意义,请告诉我。这有点难以解释。提前致谢!
编辑我尝试将字符串更改为:
[{status=complete,userid=123,reportUrl=<a href="http://www.reporturl.com">View report</a>}]
但仍然没有运气。我觉得我在正确的轨道上,只是错过了一些东西。
How can I assign a String value that contains a url and output a clickable url?
两种方式:
<a href="#{bean.url}">#{bean.url}</a>
<h:outputLink value="#{bean.url}">#{bean.url}</h:outputLink>
userHistoryDetails.completeData bean may look like this (sudo):
[{status=complete,userid=123,reportUrl=http://www.reporturl.com}]
example of table created in my jsf file. Where #{cRow[cColModel.value]}
creates a row in the table with its respective header value.
所以 .. 如果 #{cColModel.value}
等于 reportUrl
你想生成一个 link?那必须看起来像这样:
<ui:fragment rendered="#{cColModel.value eq 'reportUrl'}">
<a href="#{cRow[cColModel.value]}">#{cRow[cColModel.value]}</a>
</ui:fragment>
<ui:fragment rendered="#{cColModel.value ne 'reportUrl'}">
#{cRow[cColModel.value]}
</ui:fragment>
我正在创建一个显示用户历史记录的网页。写在 Java 中,我有一个 pojo,其中包含我的 jsf 通过 bean 注入检索的属性。问题:其中一个值是 url。目前,字符串是一个很长的 url 但不可点击。还要注意,这些值(字符串)在 ArrayList 中。如何分配包含 url 的字符串值并输出可点击的 url?
userHistoryDetails.completeData bean 可能看起来像这样 (sudo):
[{status=complete,userid=123,reportUrl=http://www.reporturl.com}]
在我的 jsf 文件中创建的 table 示例。其中 #{cRow[cColModel.value]}
在 table 中使用其各自的 header 值创建一行。
<ace:dataTable id="completedTable"
value="#{userHistoryDetails.completeData}" var="cRow"
paginator="true" rows="50" paginatorPosition="both"
emptyMessage="NO RECORDS TO DISPLAY">
<c:forEach items="#{userHistoryDetails.userHistoryHeaders}"
var="cColModel">
<ace:column headerText="#{cColModel.headerText}">
#{cRow[cColModel.value]}
</ace:column>
</c:forEach>
</ace:dataTable>
如果这没有意义,请告诉我。这有点难以解释。提前致谢!
编辑我尝试将字符串更改为:
[{status=complete,userid=123,reportUrl=<a href="http://www.reporturl.com">View report</a>}]
但仍然没有运气。我觉得我在正确的轨道上,只是错过了一些东西。
How can I assign a String value that contains a url and output a clickable url?
两种方式:
<a href="#{bean.url}">#{bean.url}</a>
<h:outputLink value="#{bean.url}">#{bean.url}</h:outputLink>
userHistoryDetails.completeData bean may look like this (sudo):
[{status=complete,userid=123,reportUrl=http://www.reporturl.com}]
example of table created in my jsf file. Where
#{cRow[cColModel.value]}
creates a row in the table with its respective header value.
所以 .. 如果 #{cColModel.value}
等于 reportUrl
你想生成一个 link?那必须看起来像这样:
<ui:fragment rendered="#{cColModel.value eq 'reportUrl'}">
<a href="#{cRow[cColModel.value]}">#{cRow[cColModel.value]}</a>
</ui:fragment>
<ui:fragment rendered="#{cColModel.value ne 'reportUrl'}">
#{cRow[cColModel.value]}
</ui:fragment>