0

我在 Java 中使用 jmesa 直接使用 tableModel.render() 来直接获取 HTML。我的结果列表中的一些 Web 对象包含 HTML - 例如:

class blah {
    String email;
    public String getEmailLink() {
      return "<a href='" + email + "</a>"
    }
}

在我的 Java 代码中,我会这样做:

htmlRow.addColumn(new HtmlColumn("emailLink"));

jmesa 将其呈现为文本。如何告诉 jmesa 将文本按原样呈现为文档中的 html?

TIA

4

2 回答 2

1

使用本教程中所示的 HtmlCellRenderer 。

于 2012-12-07T20:02:46.237 回答
1

查看JMesa 源代码HtmlCellEditor自动转义 HTML。

我还没有测试过,但你应该能够HtmlCellEditor用不同的类型覆盖默认值......例如准系统BasicCellEditor。它不应该有太多额外的代码:

HtmlColumn emailLinkColumn = new HtmlColumn("emailLink");
emailLinkColumn.setCellEditor(new BasicCellEditor());
htmlRow.addColumn(emailLinkColumn);

所有这一切的另一个选择是创建一个自定义 CellEditor 并让它<a>为您创建标签,而不是在您的 bean 中进行。 如果你想走这条路,这个页面应该让你开始使用自定义 CellEditor。

顺便说一句,如果你只是在一个单元格内弄乱了一个值,覆盖/替换CellEditor可能就是你所需要的(CellEditor它类似于 a 的主体<td>)。 CellRenderer关注整个单元格(类似于 the<td>及其内容)。

于 2013-03-01T00:32:03.780 回答