我正在尝试通过绑定生成自动完成框。但我不确定为什么搜索值的标签不会在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());
答案 0 :(得分:0)
我最终编写了自定义渲染器,其中在引用ItemLabel的任何地方我都覆盖了方法&而不是直接使用ItemLabel我每次发现ItemLabel以“#{”开头时都会进行EL表达式评估。这导致自动完成的正常工作。解决方案有效。
我已经覆盖了以下方法
如果您能找到更方便的解决方案,请告诉我。