我直接在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?
蒂亚
查看 JMesa soure 代码,HtmlCellEditor
会自动转义 HTML。
我还没有测试过它,但您应该能够用不同类型的方式覆盖默认HtmlCellEditor
......比如裸露的BasicCellEditor
. 它不应该是太多额外的代码:
HtmlColumn emailLinkColumn = new HtmlColumn("emailLink");
emailLinkColumn.setCellEditor(new BasicCellEditor());
htmlRow.addColumn(emailLinkColumn);
所有这些的另一种选择是创建自定义 CellEditor 并让它为您创建<a>
标签,而不是在您的 Bean 中执行此操作。 如果您想走这条路,此页面应该可以让您开始使用自定义单元格编辑器。
顺便说一句,如果您只弄乱单元格内的值,则覆盖/替换CellEditor
可能是您所需要的(CellEditor
它类似于<td>
的主体)。 CellRenderer
关注整个单元格(类似于<td>
及其内容)。
使用 HtmlCellRenderer,如本教程所示。