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

最佳答案

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

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

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


所有这些的另一种选择是创建一个自定义的CellEditor,并让它为您创建<a>标记,而不是在bean中进行标记。如果您想使用This page,应该使用自定义CellEditor入门。

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

09-11 22:49