我直接在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 code,HtmlCellEditor
自动转义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>
及其内容)。