在我们的应用程序中,当字符串包含像&这样的字符时,我们会得到一个难看的异常(解析器)。
现在,我们使用StringEscapeUtils.escapeXml(aLabel)替换这些字符。这是正确的方式吗?因为我们的tableView中的标签显示转义字符而不是干净的&
谢谢,文森
发布于 2014-05-13 18:52:20
'&‘字符用于SWT/RAP/Tabris中的助记符。它们通常用于用下划线标记菜单或按钮中的字符,以便进行键盘导航。在iOS和Android的Tabris客户端上,我们不会显示助记符,因为我们没有桌面上的键盘导航-但如果设置了键盘导航,应该不会造成任何问题。
那么,这种异常发生在哪里呢?在服务器上,Android还是iOS客户端?
发布于 2014-05-13 21:39:46
乔迪,异常发生在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-14 20:48:24
您看到的异常不是来自tabris。它来自于说唱。我假设您使用的是树/表。( 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
因此,当您使用标记并希望使用&字符时,您需要使用它的实体:&
但请注意:基本标记仅在1.4版的Tabris中受支持( 2014年6月26日发布)
https://stackoverflow.com/questions/23613916
复制相似问题