2013-08-02 5 views
1

빈에서리스트의 Object에 재산을 관리하지만 내가 작은 예를 보여줍니다 무엇을 할 것인지 설명하기 위해 솔루션 을 찾아 '말아 : 내가 만든내가 관리 콩으로 뭔가를 할 것

을 당신은 하나 개의 속성 있는 간단한는 DataHolder IST 볼 수있는 다음과 같은 구조

public class Data implements Serializable{ 
    private static final long serialVersionUID = 5156829783321214340L; 
    String value=""; 

    public Data() { 
    } 

    public String getValue() { 
     return value; 
    } 

    void setValue(String data) { 
     this. value = data; 
    } 
} 

와 오브젝트 데이터는 지금은 whitch 단지 데이터의 목록

public class Databean implements Serializable{ 

    private static final long serialVersionUID = 9205700558419738494L; 

    private ArrayList<Data> datalist; 

    public Databean() 
    { 
     datalist = new ArrayList<Data>(); 
     Data newItem; 
     for (int i=0; i<5; i++) { 
      newItem = new Data(); 
      datalist.add(newItem); 
     } 
    } 

    public ArrayList<Data> getDatalist() { 
     return datalist; 
    } 

    public void setDatalist(ArrayList<Data> datalist) { 
     this.datalist = datalist; 
    } 

} 
개체 보유하고 내 콩있을 것 secound 객체를 생성 빈을 게시 할 수있는 얼굴-설정에서

선언 내 문제에 이제 아무 문제

<managed-bean> 
    <managed-bean-name>managedBean</managed-bean-name> 
    <managed-bean-class>de.itwu.Databean</managed-bean-class> 
    <managed-bean-scope>view</managed-bean-scope> 
</managed-bean> 

없습니다 : 내가 InputText]를

에 대한 연결을 관리 속성 또는 뭔가를 만들 싶습니다 repreat 제어 등의

:

<xp:repeat value="#{managedBean.datalist}" var="rowData"> 
    <xp:inputText id="inputText1" defaultValue="#{rowData.value}"></xp:inputText> 
</xp:repeat> 

사람이이 일 수 있는지 아이디어가 있습니까?

그래서 예제는 수정되었지만 표시되는 데이터 - 개체의 데이터 값을 설정하지는 않습니다. 그러나 Inputtextfields의 값을 편집하면 Object에 자동으로 다시 쓰지 않습니다. 나는 문제가 얼굴 - 구성의 대명사 다. 아이디어?

+0

@ henrik-lausten은 그의 블로그에서 멋진 자습서를 가지고 있습니다. http://per.lausten.dk/blog/2012/02/creating-your-first-managed-bean-for-xpages.html –

답변

1

var (rowData)의 repeat에 할당 된 변수에는 Data 클래스의 인스턴스가 포함됩니다. 각 입력 컨트롤을 값 필드에 바인딩하려면 해당 속성을 참조하십시오. getValue() 및 setValue()가 정의되어 있으므로 값 바인딩이 만들어지고 내용을 편집 할 수 있습니다. getValue() 메소드 만 정의되면 메소드 바인딩이 작성되고 필드는 편집 할 수 없습니다.

<xp:repeat value="#{managedBean.datalist}" var="rowData"> 
    <xp:inputText id="inputText1" value="#{rowData.value}"></xp:inputText> 
</xp:repeat> 
+0

그래서 필자는 입력 텍스트에서 데이터 바인딩을 수정했습니다. 그러나 필드의 값을 페이지에서 변경하면 데이터 객체에 자동으로 다시 쓰지 않습니다. faces-config에 관리 속성 텍스트와 같은 텍스트가 더 필요합니까? –

+0

이제 Domino 서버의 캐시를 비운 후에 모두 정상적으로 작동합니다. –

0

바인딩이 잘못되었습니다.

<xp:repeat value="#{managedBean.datalist}" var="rowData"> 
    <xp:inputText id="inputText1" defaultValue="#{rowData.value}"></xp:inputText> 
</xp:repeat> 

rowData

필드 value하지 datavalue 대해 게터/세터를 채우는 데이터 객체를 포함한다.