jmesa将html呈现为文本

时间:2012-10-13 13:16:01

标签: java javascript html jmesa

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

2 个答案:

答案 0 :(得分:1)

将HtmlCellRenderer用作shown in this tutorial

答案 1 :(得分:1)

查看the JMesa soure codeHtmlCellEditor会自动转义HTML。

我还没有对它进行过测试,但您应该可以使用其他类型覆盖默认的HtmlCellEditor,例如简单的BasicCellEditor。它不应该是太多的额外代码:

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

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

顺便说一句,如果你只是搞乱一个单元格中的值,那么覆盖/替换CellEditor可能就是你所需要的CellEditor它类似于<td>的正文)。 CellRenderer关注整个单元格(类似于<td>及其内容)。