2017-09-28 10 views
-1

나는 상태가 긴급한지를 표시하는 열거 형이있는 페이지의 환자 기록 화면을 가지고 있지만, 그것이 데이터베이스에 저장 될 때 primeface의 selectmanycheckbox에 오류를 내고있다. 누구든지 도와 줄 수 있습니까? 감사합니다primefaces에서 selectManycheck의 오류를 해결하는 방법은 무엇입니까?

내 페이지 :

<p:outputLabel value="Nome" for="nomepa" /> 
    <p:autoComplete id="nomepa" size="40" dropdown="true" 
     value="#{cadastroListaBean.espera.paciente}" 
     completeMethod="#{cadastroListaBean.completarPaciente}" 
     var="paciente" itemLabel="#{paciente.nome}" itemValue="#{paciente}" 
     forceSelection="true"> 
     <p:ajax event="itemSelect" process="@this" 
      update="frmCadastroLista" 
      listener="#{cadastroListaBean.completarCampo}" /> 
    </p:autoComplete> 

    <p:outputLabel value="Urgência" for="urgencia" /> 
    <p:selectManyCheckbox id="urgencia" 
     value="#{cadastroListaBean.espera.urgencia}" 
     converter="#{urgenciaConverter}" > 
     <f:selectItems value="#{cadastroListaBean.urgencias}" 
      var="urgencia" itemValue="#{urgencia}" 
      itemLabel="#{urgencia.descricao}" /> 
     <f:attribute name="collectionType" value="java.util.ArrayList" /> 
    </p:selectManyCheckbox> 

내 콩

@Named 
@ViewScoped 
public class CadastroListaBean implements Serializable { 

    private static final long serialVersionUID = 1L; 
public void salvar() { 
    this.espera = cadastroListaService.salvar(this.espera); 
} 

    public List<SelectItem> getUrgencias() { 
     List<SelectItem> listUrgencias = new ArrayList<SelectItem>(); 
     for (Urgencia ug : Urgencia.values()) { 
      listUrgencias.add(new SelectItem(ug, ug.getDescricao())); 
     } 
     return listUrgencias; 
    } 
} 

내 열거가 :

공공 열거 Urgencia {

SIM("Sim"), 
NAO ("Não"); 


private String descricao; 

Urgencia(String descricao) { 
    this.descricao = descricao; 
} 

public String getDescricao() { 
    return descricao; 
} 

}

오류 : SelectItem의를 사용하는 경우이 속성을 지정할 필요가 없습니다

Caused by: javax.faces.FacesException: Target model Type is no a Collection or Array 
    at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValuesForModel(MenuRenderer.java:391) 
    at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValue(MenuRenderer.java:128) 
    at com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:314) 
    at org.primefaces.component.selectmanycheckbox.SelectManyCheckboxRenderer.getConvertedValue(SelectManyCheckboxRenderer.java:39) 
    at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1034) 
    at javax.faces.component.UIInput.validate(UIInput.java:964) 
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1237) 
    at javax.faces.component.UIInput.processValidators(UIInput.java:702) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1220) 
    at javax.faces.component.UIForm.processValidators(UIForm.java:253) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1220) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1220) 
    at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1164) 
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) 
    ... 53 more 

답변

-1

는 ... 또한 더 collectionType은 기본적으로 필요하지 않습니다. 다음과 같이 입력하십시오 :

<p:outputLabel value="Urgência" for="urgencia" /> 
<p:selectManyCheckbox id="urgencia" value="#{cadastroListaBean.espera.urgencia}" 
         converter="#{urgenciaConverter}" > 
    <f:selectItems value="#{cadastroListaBean.urgencias}" var="urgencia" /> 
</p:selectManyCheckbox>