【问题标题】:p:autoComplete binding not showing label for searched valuep:autoComplete 绑定不显示搜索值的标签
【发布时间】:2016-02-19 12:39:56
【问题描述】:

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

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());

【问题讨论】:

    标签: jsf primefaces autocomplete


    【解决方案1】:

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

    我已经覆盖了下面的方法

    1. 编码输入
    2. 编码MultipleMarkup
    3. encodeSuggestionsAsTable
    4. encodeSuggestionsAsList

    如果您能找到更简单的解决方案,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多