p:autoComplete绑定未显示搜索值的标签

时间:2016-02-19 12:39:56

标签: jsf primefaces autocomplete

我正在尝试通过绑定生成自动完成框。但我不确定为什么搜索值的标签不会在UI上呈现。代码段添加在下面。请帮忙。

FacesContext facesContext = FacesContext.getCurrentInstance();
AutoComplete autoComplete = new AutoComplete();
ExpressionFactory factory = ExpressionFactory.newInstance();

@SuppressWarnings("rawtypes")
Class[] classes = new Class[1];
classes[0] = User.class;

autoComplete.setCompleteMethod(factory.createMethodExpression(facesContext.getELContext(), "#{userBean.values}", List.class , classes));
autoComplete.setVar("user");
autoComplete.setDropdown(false);
autoComplete.setItemValue(facesContext.getApplication().getExpressionFactory().createValueExpression("#{user}", User.class));
autoComplete.setItemLabel(facesContext.getApplication().evaluateExpressionGet(facesContext, "#{user.name}", String.class));
autoComplete.setConverter(new CommonConvertor());

1 个答案:

答案 0 :(得分:0)

我最终编写了自定义渲染器,其中在引用ItemLabel的任何地方我都覆盖了方法&而不是直接使用ItemLabel我每次发现ItemLabel以“#{”开头时都会进行EL表达式评估。这导致自动完成的正常工作。解决方案有效。

我已经覆盖了以下方法

  1. encodeInput
  2. encodeMultipleMarkup
  3. encodeSuggestionsAsTable
  4. encodeSuggestionsAsList
  5. 如果您能找到更方便的解决方案,请告诉我。