0

HTMLを直接取得するためにtableModel.render()を直接使用してJavaでjmesaを使用しています。結果リストの一部のWebオブジェクトにHTMLが含まれています-例:

class blah {
    String email;
    public String getEmailLink() {
      return "<a href='" + email + "</a>"
    }
}

私のJavaコードでは、これを実行します。

htmlRow.addColumn(new HtmlColumn("emailLink"));

jmesaはこれをテキストとしてレンダリングしています。jmesaにテキストをそのままレンダリングしてドキュメント内でhtmlにするように指示するにはどうすればよいですか?

TIA

4

2 に答える 2

1

このチュートリアルに示すように、HtmlCellRendererを使用します。

于 2012-12-07T20:02:46.237 に答える
1

JMesa soureコードを見ると、HTMLをHtmlCellEditor自動的にエスケープします。

私はそれをテストしていませんが、デフォルトを別のタイプでオーバーライドできるはずですHtmlCellEditor...ベアボーンなどBasicCellEditor。余分なコードは多すぎないようにする必要があります。

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

これらすべてのもう1つのオプションは、カスタムCellEditorを作成<a>し、Beanで行うのではなく、タグを作成することです。 このページでは、カスタムCellEditorsを使い始めることができます。

ところで、セル内の値だけをいじっている場合は、オーバーライド/置換するだけCellEditorでおそらく必要です(CellEditorこれはの本体に類似しています<td>)。 CellRendererセル全体に関係します(<td>およびその内容に類似しています)。

于 2013-03-01T00:32:03.780 に答える