2010-12-27 3 views
2

페이지에 콤보 상자 (드롭 다운 목록)와 텍스트 필드가 있습니다. 둘 다 사실로 설정해야합니다. 드롭 다운에서 값을 선택하고 양식을 제출하면 유효성 검사가 시작되고 텍스트 필드 값이 null이므로 동일한 페이지로 리디렉션됩니다. 어떤 것이 좋지만 드롭 다운 목록에서 선택된 데이터가 느슨합니다. 유효성 검사 오류가있을 때 양식 데이터를 유지하려면 어떻게해야합니까? jsf1.2와 함께 facelets를 사용하고 있습니다. 그것은 JSF 2.0에서 잘 작동jsf에서 유효성 검사 오류 후 양식 데이터 복원

답변

1

HI. 나는 방금 해봤습니다. 다음 코드를 작성했습니다 :

<f:view> 
     <h:form> 
      <h:inputText id="name" value="#{jsfBean.name }" required="true"/> 
      <h:selectOneMenu id="items" value="#{jsfBean.selectedItem }" required="true"> 
       <f:selectItems value="#{jsfBean.items }"/> 
      </h:selectOneMenu> 
      <h:commandButton id="submit" value="Submit" action="#{jsfBean.submit }" /> 
     </h:form> 
    </f:view> 

private String selectedItem; 
private ArrayList<SelectItem> items = null; 
public String getSelectedItem() { 
    this.selectedItem = "--Select--"; 
    return selectedItem; 
} 
public void setSelectedItem(String selectedItem) {  
    this.selectedItem = selectedItem; 
} 
public ArrayList<SelectItem> getItems() { 
    this.items = new ArrayList<SelectItem>(); 
    SelectItem selectItem = new SelectItem("1","1"); 
    SelectItem selectItem1 = new SelectItem("--Select--","--Select--"); 
    this.items.add(selectItem); 
    this.items.add(selectItem1); 
    return items; 
} 
public void setItems(ArrayList<SelectItem> items) { 
    this.items = items; 
} 
+0

JSF 1.2에서도 작동합니다. 기사를 읽고 나면 값을 유지하기 위해 SelectMenu에 버그가 있다는 것을 알았습니다. 최신 버전 1.2.X로 업데이트하여 사용해 볼 수 있습니까? – Krishna