使用 Boostrap4XPages 的 Xpages 数据视图图标列

Xpages data view icon column with Boostrap4XPages

我目前正在尝试在数据视图中显示图标。图标栏的配置很简单,selectedValue等于1,要显示的图标在数据库的图标资源中。 xpages 主题当前设置为 Bootstrap4XPages。该页面不显示在浏览器中。当我将主题设置为 OneUI 时,页面显示正常并带有图标。谁能指出一种调试方法?这是多米诺服务器上错误日志的片段。我删除了大部分异常值以使 post 尽可能短。 :

<CommonBaseEvent creationTime="2015-01-12T13:49:54.885-05:00" globalInstanceId="EL0a94000600014a3fc8c8ac000001c0" msg="CLFAD0246E: Exception occurred servicing request for: /test.nsf/test.xsp - HTTP Code: 500" severity="50" version="1.0.1">
    <extendedDataElements name="CommonBaseEventLogRecord:level" type="noValue">
        <children name="CommonBaseEventLogRecord:name" type="string"> 
            <values>GRAVE</values>
        </children>
    </extendedDataElements>
    <extendedDataElements name="CommonBaseEventLogRecord:sourceClassName" type="string">
        <values>com.ibm.domino.xsp.bridge.http.engine.XspCmdManager</values>
    </extendedDataElements>
    <extendedDataElements name="CommonBaseEventLogRecord:sourceMethodName" type="string">
        <values>service</values>
    </extendedDataElements>
    <extendedDataElements name="CommonBaseEventLogRecord:Exception" type="string">
        <values>Context Path: /test.nsf&#xD;&#xA;Page Name: /test.xsp&#xD;&#xA;java.lang.NullPointerException: Argument Error: One or more parameters are null.&#xD;&#xA;&#x9;at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.writeAttribute(HtmlResponseWriter.java:308)&#xD;&#xA;&#x9;at com.ibm.xsp.theme.bootstrap.renderkit.html.extlib.data.DataViewRenderer.writeIconColumn(DataViewRenderer.java:267)&#xD;&#xA;&#x9;at com.ibm.xsp.extlib.renderkit.html_extended.data.DataViewRenderer.writeStandardRow(DataViewRenderer.java:792)&#xD;&#xA;&#x9;at com.ibm.xsp.extlib.renderkit.html_extended.data.DataViewRenderer.writeRow(DataViewRenderer.java:570)&#xD;&#xA;&#x9;at com.ibm.xsp.extlib.renderkit.html_extended.data.AbstractDataViewRenderer.writeRows(AbstractDataViewRenderer.java:816)&#xD;&#xA;&#x9;at com.ibm.xsp.extlib.renderkit.html_extended.data.DataViewRenderer.writeRows(DataViewRenderer.java:548)&#xD;&#xA;&#x9;at com.ibm.xsp.extlib.renderkit.html_extended.data.DataViewRenderer.writeContent(DataViewRenderer.java:256</values>
    </extendedDataElements>
    <sourceComponentId component="Expeditor 6.2" componentIdType="ProductName" instanceId="" location="notes" locationType="Hostname" subComponent="" threadId="1" componentType="http://www.w3.org/2001/XMLSchema-instance"/>
    <situation categoryName="ReportSituation">
        <situationType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ReportSituation" reasoningScope="INTERNAL" reportCategory="LOG"/>
    </situation>
</CommonBaseEvent></CommonBaseEvents>

查看devtools(浏览器调试工具),查看html代码中是否有图标,查看路径是否有效。如果没有图标,那么 bootstrap 插件可能不支持它。

无论哪种方式,您始终可以使用 jQuery 或普通客户端 JavaScript

轻松添加图标客户端

问题出在错误:com.ibm.xsp.theme.bootstrap.renderkit.html.extlib.data.DataViewRenderer.writeIconColumn(DataViewRenderer.java:267)

这是一个错误,我最近才发现的。我确定了一个修复程序,我们将在下一个 extlib 版本中发布(不确定何时发布)。当图标的 title 属性留空时,它会尝试使用 alt 属性作为标题。问题是它不检查 alt 值是否存在,如果不存在,它会尝试将 null 写入属性,然后您会得到 NullPointerException。 DataViewRenderer 代码中的简单修复。

我认为您可以通过设置图像图标的 title 或 alt 属性来解决此问题。所以现在就试一试吧。