首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使xf:输出为可点击的链接

使xf:输出为可点击的链接
EN

Stack Overflow用户
提问于 2016-06-09 19:28:38
回答 1查看 67关注 0票数 0

我有一个xquery,其中定义了一个实例:

代码语言:javascript
复制
    <xf:instance id="table" xmlns="">
        <results>
            <result>
                <interfaceName></interfaceName>
                <reportDate></reportDate>
                <testResult></testResult>
                <fileLink></fileLink>
                <fileName></fileName>
            </result>
        </results>
    </xf:instance>

稍后,我通过提交和检索来自另一个xquery的信息来“替换”这个实例:

代码语言:javascript
复制
<xf:submission id="showTable"
                        method="post" 
                        replace="instance"
                        ref="instance('table')"
                        instance="table">
                <xf:resource value="concat('/exist/rest/db/xquery/returnTable.xq?interface=',instance('defaultInstance')//InterfaceName,'&amp;','date=',instance('defaultInstance')//CalendarDate)"/>        
            </xf:submission>

返回的'table‘实例如下:

代码语言:javascript
复制
<results>
<result>
<interfaceName>test1</interfaceName>
<reportDate>2016-06-01</reportDate>
<testResult>failure</testResult>
<fileLink>http://localhost:8080/exist/rest/db/junitReports/Report2.xml</fileLink>
<fileName>/db/junitReports/Report2.xml</fileName>
</result>
<result>
<interfaceName>test2</interfaceName>
<reportDate>2016-06-01</reportDate>
<testResult>success</testResult>
<fileLink>http://localhost:8080/exist/rest/db/junitReports/Report1.xml</fileLink>
<fileName>/db/junitReports/Report1.xml</fileName>
</result>
</results>

然后,我尝试通过引用这个返回实例中的值来构建一个表:

代码语言:javascript
复制
<tbody xf:repeat-nodeset="instance('table')//result">
                   <tr>
                        <td>
                            <xf:output ref="interfaceName"></xf:output>   
                        </td>
                        <td>
                            <xf:output ref="reportDate"></xf:output> 
                        </td>
                        <td>
                            <xf:output ref="testResult"></xf:output>  
                        </td>
                        <td>
                            <li>
                                <!-- <a href="{concat(request:get-scheme(), "://", request:get-server-name(),":", '8080', '/exist/rest', fileLink )}">Link</a> -->
                                <xf:output ref="fileLink"></xf:output>
                            </li>
                        </td>
                    </tr>
                </tbody>

问题是最后一栏应该变成一个可点击的链接,而我没有找到这样做的方法。

我试图通过指定类型来使‘表’实例中的fileLink元素成为URL:

代码语言:javascript
复制
<xf:bind nodeset="instance('table')//result/fileLink" type="anyURI"></xf:bind>

但这只会使表的第一行中的值成为链接。在所有next记录中,此列仍为平面文本。

我宁愿使用一个简单的href (您可以在那里看到它被注释掉了),但是我不知道如何从fileLink元素获取一个值?

这不起作用,因为fileName没有连接到字符串(我认为它没有被找到):

代码语言:javascript
复制
<a href="{concat(request:get-scheme(), "://", request:get-server-name(),":", '8080', '/exist/rest', fileName)}">Link</a>

这不起作用(这是显而易见的,但我还是试过了)

代码语言:javascript
复制
<a href="fileLink">Link</a>

在这两种可能的解决方案中,我不知道:如果我决定使用href,我如何在纯HTML中引用fileLink元素来使其工作(对于我的解决方案更好)?如果我使用xf:output和xf:bind而不是href,我如何才能使字段的第一次出现都成为可单击的链接,而且使接下来的所有出现都成为可点击的链接?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-06-09 21:55:25

这就解决了这个问题:

代码语言:javascript
复制
                <td>
                    <xf:trigger appearance="minimal">
                        <xf:label>File link</xf:label>
                        <xf:action ev:event="DOMActivate">
                            <xf:load show="new">
                                <xf:resource value="fileLink"/>
                            </xf:load>
                        </xf:action>
                    </xf:trigger>
                </td>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37724706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档