I have a weird problem with a custom @FacesConverter
with JBoss-7.1.0.CR1b during an AJAX call in p:selectOneMenu
(Primefaces 3.0).
简化的Converter认为,本类没有国民教育体系或其他例外。
@FacesConverter("MyConverter")
public class MyConverter implements Converter
{
public Object getAsObject(FacesContext fc, UIComponent uic, String value)
{
logger.debug("getAsObject value: "+value);
if (submittedValue.trim().equals("")) {return null;}
else
{
MyEjb ejb = new MyEjb();
ejb.setId(Long.parseLong(value()));
return ejb; //**** alternative with return null; ****
}
}
public String getAsString(FacesContext fc, UIComponent uic, Object value)
{
if (value == null || value.equals("")) {return "";}
else
{
MyEjb ejb = (MyEjb)value;
return ""+ejb.getId();
}
}
}
转换器在<代码>p:电子计算器中使用 1Menu:
<h:form>
<p:selectOneMenu value="#{clientBean.selected}" converter="MyConverter">
<f:selectItems value="#{clientBean.all}" var="my"
itemLabel="#{my.name}" itemValue="#{my}"/>
<p:ajax listener="#{clientBean.changed}" />
</p:selectOneMenu>
</h:form>
这种方法不是火箭工程,而是经过改变的,只是造成 de:
public void changed()
{
logger.info("changed() "+selected);
}
但现在宣布: <changed(>
>从来不使用上述代码,但我得到转手的援引 3<>>。
12:37:51,500 DEBUG getAsObject value: 35
12:37:51,502 DEBUG getAsObject value:
12:37:51,503 DEBUG getAsObject value:
如果我改动<代码>p:select OneMenu Value=”#{clientBean.s selectedId}"至 长期选定 Id
,不使用“电离器”方法。 即便在<条码>上“Ireturn no
>,changed(>
>也称为(收到)。 我并不认为它涉及几个方面,因为如果我使用<代码>h:select OneMenu和f:ajax
,我有同样的行为。