如何防止Wicket AutocompleteAjaxComponent逸出&nbsp ;?

时间:2019-06-13 13:41:30

标签: java wicket

我正在尝试使用Wicket的AutocompleteAjaxComponent来创建一个自动填充字段。

我想在下拉列表值中使用&nbsp来放置一些空间。

但是,它已被转义并打印为原义文本。我尝试做setEscapeModelStrings(false),但无济于事。

AutocompleteAjaxComponent中不转义这些字符的首选方法是什么?

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是使用Unicode转义\u00A0而不是 ,因为AbstractAutoCompleteTextRenderer不会将其转义。

答案 1 :(得分:1)

您需要覆盖org.apache.wicket.extensions.ajax.markup.html.autocomplete.AbstractAutoCompleteTextRenderer#renderChoice(T, Response, String)

https://github.com/apache/wicket/blob/96bda7f1fd32ec5c8d1a8dfa5512fa643e2479a7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteTextRenderer.java#L35

有关灵感,请参见org.apache.wicket.extensions.ajax.markup.html.autocomplete.StringAutoCompleteRenderer。将您的课程实例传递给org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField#AutoCompleteTextField(String, IModel<T>, Class<T>, IAutoCompleteRenderer<T>, AutoCompleteSettings)