我在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
答案 0 :(得分:1)
将HtmlCellRenderer用作shown in this tutorial。
答案 1 :(得分:1)
查看the JMesa soure code,HtmlCellEditor
会自动转义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>
及其内容)。