微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将字符串转换为可点击链接

如何解决将字符串转换为可点击链接

我正在创建一个显示用户历史记录的网页。我用 Java 编写的 pojo 包含我的 jsf 通过 bean 注入检索的属性。问题:其中一个值是一个 url。目前,该字符串是一个长网址,但不可点击。还要注意,这些值(字符串)在一个 ArrayList 中。如何分配包含网址的字符串值并输出可点击的网址?

userHistoryDe​​tails.completeData bean 可能看起来像这样 (sudo):

[{status=complete,userid=123,reportUrl=http://www.reporturl.com}]

在我的 jsf 文件中创建的表格示例。其中 #{cRow[cColModel.value]} 在表格中创建一行,并使用其各自的标题值。

<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,reportUrl=<a href="http://www.reporturl.com">View report</a>}]

但仍然没有运气。我觉得我在正确的轨道上,只是遗漏了一些东西。

enter image description here

解决方法

如何分配包含 url 的 String 值并输出可点击的 url?

两种方式:

<a href="#{bean.url}">#{bean.url}</a>
<h:outputLink value="#{bean.url}">#{bean.url}</h:outputLink>

userHistoryDe​​tails.completeData bean 可能看起来像这样 (sudo):

[{status=complete,userid=123,reportUrl=http://www.reporturl.com}]

在我的 jsf 文件中创建的表格示例。其中 #{cRow[cColModel.value]} 在表格中创建一行,并使用其各自的标题值。

所以 .. 如果 #{cColModel.value} 等于 reportUrl,您想生成链接吗?必须看起来像这样:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。