0

In our application we get an ugly exception (parser) when having a string that contains a character like &.

For now we replace these characters using StringEscapeUtils.escapeXml(aLabel). Is this the proper way because the label in our tableView shows the escaped character instead of a clean &

Thanks, Vincent

4

3 回答 3

0

您看到的例外情况并非来自 tabris。它来自说唱。我假设您正在使用 tree/table.setData( RWT.MARKUP_ENABLED, Boolean.TRUE ); 正确的?

使用标记时,只允许使用 HTML 的子集,请参阅http://download.eclipse.org/rt/rap/doc/2.2/guide/reference/api/org/eclipse/rap/rwt/RWT.html#MARKUP_ENABLED

因此,当您使用标记并且想要一个 & 字符时,您需要使用它的实体: &

但请注意:基本标记仅在 Tabris 1.4 版中受支持(2014 年发布,6 月 26 日)

于 2014-05-14T12:48:23.923 回答
0

Jordi,异常发生在服务器中的 getColumnText 方法中。

public String getColumnText( Object element, int columnIndex ) {
      return text;
}

当文本是包含 '&' 的字符串时会发生异常,例如“Billy & Jean”

这是一个例外:

发生异常

java.lang.IllegalArgumentException: Failed to parse markup text at    org.eclipse.swt.internal.widgets.MarkupValidator.validate(MarkupValidator.java:60)    at org.eclipse.swt.widgets.TreeItem.setText(TreeItem.java:978)  at org.eclipse.jface.viewers.TreeViewerRow.setText(TreeViewerRow.java:176) at org.eclipse.jface.viewers.ViewerCell.setText(ViewerCell.java:162) at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:70)  at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:155)    at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:935)   at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:103)     at org.eclipse.jface.util.SafeRunnable$1.run(SafeRunnable.java:130)     at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:177)
于 2014-05-13T13:39:46.033 回答
0

'&' 字符用于 SWT/RAP/Tabris 中的助记符。它们通常用于在菜单或按钮中用下划线标记字符以进行键盘导航。在适用于 iOS 和 Android 的 Tabris 客户端上,我们不显示助记符,因为我们没有桌面上的键盘导航 - 但如果设置它们应该不会出现问题。

那么,这个异常发生在哪里呢?在服务器上,Android 或 iOS 客户端?

于 2014-05-13T10:52:19.603 回答