1
변환기에 문제가 있습니다. 내 xhtml 파일에서 나는 selectOneMenu 객체 목록을 가지고 있고 managedBean 내 객체를 설정하려고한다.변환기가 @ViewScoped와 작동하지 않습니다.
내 managedBean에 @SessionScoped가있는 경우 managedbean의 개체가 채워지지만 managedeban에 @ViewScoped가 있으면 변환기가 사용되지 않고 내 개체가 null입니다.
이 문제를 해결하는 방법은 무엇입니까?
XHTML :
<p:selectOneMenu value="#{rechercheBean.role}" converter="#{typConverter}">
<f:selectItems id="item" value="#{typBean.roles}" var="r" itemLabel="#{r.valeur}" itemValue="#{r}" />
</p:selectOneMenu>
typConverter :
public class TypConverter implements Converter{
@EJB
private TypFacadeLocal TypBean;
public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
if (submittedValue.trim().equals("")) {
return null;
}
else {
try {
Integer id = Integer.parseInt(submittedValue);
Typ typ = new Typ();
typ = TypBean.find(id);
return typ;
}
catch (NumberFormatException exception) {
throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Typ non valide"));
}
}
}
public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
if (value == null || value.equals("")) {
return "";
}
else {
return String.valueOf(((Typ) value).getId());
}
}
}
송신
문제의 원인은 지금까지 게시 된 코드에서 볼 수 없습니다. SSCCE를 게시하십시오. – BalusC
이 문제점에는 코드 오류가 없습니다 ... managedBean이 @ViewScoped 인 경우 managedBean의 내 객체는 null을 유지합니다. TypConverter에 중단 점을 넣으면이 스코프 (@SessionScoped와는 반대로)에 결코 사용되지 않습니다. – holegeek
나는 그것을 이해했습니다. 나는 기본적으로 지금까지 게시 한 코드가 모두 괜찮아 보이고 주어진 코드를 기반으로 구체적인 문제의 원인을 발견하거나 이해할 수 없다고 말하고있었습니다. 우리는 실제 상황을 파악할 수 있도록 더 많은 컨텍스트/코드를 제공해야합니다. SSCCE의 맛을 낸 스 니펫이 가장 이상적입니다 (JSF의 경우, 기본적으로 ** 가능한 가장 작은 ** XHTML 파일 및 Backing Bean 클래스입니다. 우리는 문제를 직접 보면서 변경하지 않고 복사 할 수 있습니다) . – BalusC