我有一个xquery,其中定义了一个实例:
<xf:instance id="table" xmlns="">
<results>
<result>
<interfaceName></interfaceName>
<reportDate></reportDate>
<testResult></testResult>
<fileLink></fileLink>
<fileName></fileName>
</result>
</results>
</xf:instance>
稍后我会更换&#39;此实例通过提交和检索来自另一个xquery的信息:
<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,'&','date=',instance('defaultInstance')//CalendarDate)"/>
</xf:submission>
退回&#39;表&#39;实例看起来像:
<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>
然后我试图通过引用此返回实例中的值来构建表:
<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>
问题是最后一列应该成为可点击的链接,我找不到办法。
我尝试在&#39; table&#39;中创建一个fileLink元素。通过指定其类型实例化URL:
<xf:bind nodeset="instance('table')//result/fileLink" type="anyURI"></xf:bind>
但这只会使表格的第一行中的值成为一个链接。在所有下一个记录中,此列仍为平面文本。
我宁愿使用一个简单的href(你可以在那里注释掉它),但我不知道如何从fileLink元素中获取值?
这不起作用,因为fileName没有连接到字符串(我认为没有找到):
<a href="{concat(request:get-scheme(), "://", request:get-server-name(),":", '8080', '/exist/rest', fileName)}">Link</a>
这不起作用(这很明显,但我还是试过)
<a href="fileLink">Link</a>
在两种可能的解决方案中我都不知道:如果我决定使用它(如果我更喜欢使用解决方案),我如何在纯HTML中引用fileLink元素以使其与href一起使用?如何使用xf:output和xf:bind而不是href,我怎么能不仅使第一次出现的字段成为可点击的链接,而且所有下一个链接也是如此?
谢谢。
答案 0 :(得分:1)
这解决了这个问题:
<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>