当我想保存我的选择列表的数据时,我得到以下错误
@Override
public Object getAsObject(FacesContext context, UIComponent component,
String value) {
if (value.trim().equals("")) {
return null;
}
Object ret = null;
if (component instanceof PickList) {
Object dualList = ((PickList) component).getValue();
DualListModel<?> dl = (DualListModel<?>) dualList;
for (Object o : dl.getSource()) {
String id = ((Group) o).getDistinguishedName();
if (value.equalsIgnoreCase(id)) {
ret = o;
break;
}
}
if (ret == null)
for (Object o : dl.getTarget()) {
String id = ((Group) o).getDistinguishedName();
if (value.equals(id)) {
ret = o;
break;
}
}
}
return ret;
}
@Override
public String getAsString(FacesContext context, UIComponent component,
Object value) {
if (value == null || value.equals("")) {
return "";
} else {
String str = "";
if (value instanceof Group) {
str = ""
+ ((Group) value)
.getDistinguishedName();
}
return str;
}
}
<p:pickList
value="#{bean.groups}" var="group"
itemLabel="#{group.groupName}" itemValue="#{group}"
converter="groupConverter">
</p:pickList>
我不明白这个错误,因为在web中我发现转换器没有被调用,但肯定是被调用的。我快没主意了。没有空值或任何东西。类有一个equal和hashcode方法。
更新:我发现selectOneMenu出错。这是它的密码。没有转换器,这可能是问题所在。测试它。
<p:selectOneMenu id="abteilungsleiterrolle"
value="#{bean.object.group}">
<f:selectItems value="#{bean.source}" var="q"
itemValue="#{q}" itemLabel="#{q.groupName}"/>
</p:selectOneMenu>
试试这个
@ViewScope
@FacesConverter(value="pickListConverter")
public class PickListConverter implements Converter{
Map<String, Object> tmp;
@PostConstruct
public void init() {
tmp = new HashMap<String, Object>();
}
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return tmp.get(value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value == null || value.equals("")) {
return "";
} else {
tmp.put(value.toString(), value);
return value.toString();
}
}
}
尽管此转换器仅确保您的toString()(名称类、字段和id)(例如“group[id=”+id+“]”)格式良好,但此转换器适用于任何类
并记住更改转换器名称:
<p:pickList
value="#{bean.groups}" var="group"
itemLabel="#{group.groupName}" itemValue="#{group}"
converter="pickListConverter">
问题内容: 有没有一种方法可以针对具有指向ArrayList或List的where子句的数据源(可以是sql,oracle或access)创建查询? 例子: 我已经看到了使用Linq的一些方法,但是如果可以避免的话,我宁愿不诉诸于此。 问题答案: 您可以使用。尝试这样的事情: 附带说明,这不能保护您免受SQL注入的侵害-希望本示例将为您指明正确的方向。
问题内容: 我的.xhtml页面中有一个: 它只是在进行Ajax调用。如何在Ajax调用过程中检测到(客户端/浏览器的)互联网连接问题,超时,会话超时,服务器端异常,崩溃等情况,以便向用户显示有用的消息? 是否处理所有这些属性?如果没有,那又如何?:)默认超时时间是多少? 任何帮助表示赞赏,谢谢。 问题答案: onerror调用此函数: onerror(xhr,status,exception)-
有人能向我解释下一行代码会发生什么以及它为什么有效吗? 上面的代码工作正常。它将数组转换为列表,然后添加另一个元素。但是下面的代码不起作用 上面的代码给了我以下错误:线程“main”java.lang.UnsupportedOperationException有人能告诉我这两个转换之间的区别吗?为什么只有第一个转换有效??提前谢谢
我有一个primefaces p:treeTable,在它里面我定义了一个包含两个组件的列:span标记和h:outputText标记。当前,如果我单击其中一个元素,就会触发select event of table。但我的目的是,仅当我单击文本的某个部分(而不是span元素)时,才会触发select事件。我该怎么做?
问题内容: 如何将String [](数组)转换为Collection,例如ArrayList或HashSet? 问题答案: Arrays.asList()可以在这里解决问题。 要转换为Set,您可以执行以下操作
组织。喷气式飞机。插件。格拉德尔。设置。无法将渐变设置转换为组织。喷气式飞机。插件。格拉德尔。设置。尝试构建新项目时发生渐变设置错误 我手动下载http://services.gradle.org/distributions/gradle-1.6-bin.zip并将zip内容复制到C:\Program Files(x86)\Android\android-dios\plugins\gradle文件