Jsf 如何实现Primefaces自动完成&x27;枚举类项的completeMethod?
我想要一个自动完成,它应该显示我在枚举类中指定的项的建议:Jsf 如何实现Primefaces自动完成&x27;枚举类项的completeMethod?,jsf,autocomplete,primefaces,Jsf,Autocomplete,Primefaces,我想要一个自动完成,它应该显示我在枚举类中指定的项的建议: public enum Units { PERCENT, MILLIMETER, METER, NUMBER } 我在某个类中有一个返回以下值的方法: public final List<Unit> getUnits() { List<Unit> items = new ArrayList<Unit>(); Unit[] units = Unit.values();
public enum Units {
PERCENT, MILLIMETER, METER, NUMBER
}
我在某个类中有一个返回以下值的方法:
public final List<Unit> getUnits() {
List<Unit> items = new ArrayList<Unit>();
Unit[] units = Unit.values();
for (int i = 0; i < units.length; i++) {
items.add(units[i]);
}
return items;
}
public final List getUnits(){
列表项=新建ArrayList();
单位[]单位=单位值();
对于(int i=0;i
既然要建议的项目没有setter和getter,我应该如何实现autocomplete的completeMethod?我不熟悉Primefaces和JSF,因此在此感谢您的帮助。您可以使用
units[I]
或通过units[s].name()访问枚举名称。您还可以使用Unit.valueOf(“百分比”)
将字符串值转换为enum。您的completeMethod
将如下所示:
public List<String> completeEnum(String query) {
List<String> match = new ArrayList<String>();
Unit[] units = Unit.values();
for (int i = 0; i < units.length; i++) {
if (units[i].name().contains(query))
match.add(units[i]);
}
return match;
}
并将所选字符串转换为getter/setters中的Unit
:
private Unit unit;
private String enumString;
public String getEnumString() {
return this.enumString;
}
public void setEnumString(String enumString) {
this.unit = Unit.valueOf(enumString);
}
请注意,Unit.valueOf(String)
可以抛出java.lang.IllegalArgumentException
,如果提供的字符串无法转换为Unit
,您可以使用units[i]
或通过units[s].name()访问枚举名称。您还可以使用Unit.valueOf(“百分比”)
将字符串值转换为enum。您的completeMethod
将如下所示:
public List<String> completeEnum(String query) {
List<String> match = new ArrayList<String>();
Unit[] units = Unit.values();
for (int i = 0; i < units.length; i++) {
if (units[i].name().contains(query))
match.add(units[i]);
}
return match;
}
并将所选字符串转换为getter/setters中的Unit
:
private Unit unit;
private String enumString;
public String getEnumString() {
return this.enumString;
}
public void setEnumString(String enumString) {
this.unit = Unit.valueOf(enumString);
}
请注意,Unit.valueOf(String)
可以抛出java.lang.IllegalArgumentException
如果提供的字符串无法转换为Unit
下面发布的解决方案对您有效吗?@akoskm-是的,有效。谢谢标记为已接受答案。下面发布的解决方案对您有效吗?@akoskm-是的,有效。谢谢标记为被接受的答案。