我在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如果您想走这条路,应该可以帮助您开始使用自定义 CellEditors。
顺便说一句,如果您只是弄乱单元格内的值,请覆盖/替换 CellEditor
可能就是您所需要的( CellEditor
它类似于 <td>
的主体)。 CellRenderer
涉及整个单元格(类似于 <td>
及其内容)。
关于java - jmesa 将 html 呈现为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12873461/