在我们的应用程序中,当包含一个包含像&这样的字符的字符串时,我们会得到一个丑陋的异常(解析器)。
现在我们使用StringEscapeUtils.escapeXml(aLabel)替换这些字符。 这是正确的方法,因为tableView中的标签显示了转义字符而不是干净的&
谢谢, 文森特
答案 0 :(得分:0)
'&'字符用于SWT / RAP / Tabris中的助记符。它们通常用于标记菜单或按钮中的字符,并带有键盘导航的下划线。 在用于iOS和Android的Tabris客户端上,我们不显示助记符,因为我们没有桌面上的键盘导航 - 但是如果设置它们就不会出现问题。
那么,这个异常发生在哪里? 在服务器上,Android或iOS客户端?
答案 1 :(得分: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)
答案 2 :(得分:0)
您看到的例外情况并非来自tabris。它来自RAP。我假设您正在使用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日发布)