The code bellow:
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import wicket.markup.html.*;
import wicket.markup.html.basic.Label;
import wicket.markup.html.form.Form;
import wicket.markup.html.link.Link;
import wicket.markup.html.list.ListItem;
import wicket.markup.html.list.ListView;
import wicket.markup.html.panel.FeedbackPanel;
import wicket.markup.html.form.*;
import wicket.model.*;

public class TestPage extends WebPage implements Serializable
{
        private static final long serialVersionUID = 1L;
        
        private List testList=new ArrayList();

        private ListView testListView;

        public TestPage()
        {

                final FeedbackPanel testFeedback = new 
FeedbackPanel("testFeedback");
                add(testFeedback);
                
                WebMarkupContainer dataContainer = new 
WebMarkupContainer("data");
                dataContainer.setOutputMarkupId(true);
                this.add(dataContainer);
                
                testListView = new ListView("testList", testList){
                        private static final long serialVersionUID = 1L;
                        
                        protected void populateItem(ListItem listItem){
                                final TestTO 
to=(TestTO)listItem.getModelObject();
                                                        
                                listItem.add(new Label("file", 
to.getFileInput()));
                                
System.out.println("to.getFileInput(0:"+to.getFileInput());
                                listItem.add(new 
Label("notes",to.getFileNotes()));             
                                
                                listItem.add(new Link("delete"){
                                        public void onClick()
                                        {
                                                testList.remove(to);

                                        }
                                });
                        }                       
                };
                
                 dataContainer.add(testListView);
                

                 Form uploadForm = new Form("uploadform",new 
CompoundPropertyModel(new
TestTO())){
                                private static final long serialVersionUID = 1L;
                                
                                protected void onSubmit(){
                                        
                                        TestTO to=(TestTO)getModelObject();
                                        
                                               System.out.println("****** 
Input:"+to.getFileInput());

                                System.out.println("Now size 
a:"+testList.size());
                                if(testList.size()>0)
                                {                                       
                                         System.out.println("First
value:"+((TestTO)testList.get(0)).getFileInput());
                                }
                                
                                                testList.add(to);
                                                
                                                 System.out.println("Now Size 
b:"+testList.size());
                                        
                                }                        
                 };
                
                 uploadForm.add(new TextArea("fileNotes"));
                        
                 uploadForm.add(new TextField("fileInput"));
                
                add(uploadForm);

        }

        private class TestTO implements Serializable{
                 private static final long serialVersionUID = 1L;
                
                  private String fileID;
                 
              private String fileNotes;
              
              private String fileInput;
              
             public TestTO(){}
             
                public String getFileID() {
                        return fileID;
                }

                public void setFileID(String fileID) {
                        this.fileID = fileID;
                }

                public String getFileNotes() {
                        return fileNotes;
                }

                public void setFileNotes(String fileNotes) {
                        this.fileNotes = fileNotes;
                }

                public String getFileInput() {
                        return fileInput;
                }

                public void setFileInput(String fileInput) {
                        this.fileInput = fileInput;
                }
        }
        
        }

and the html code:
<?xml version="1.0" encoding="UTF-8"?>







    
    
   
    

        

            File
            
                
            
            
            
            

            Note
            
                
            
            
            
            

    
         

                  
         


    


      

        

                File
                Notes
                Del
        
        

                (file)
                (notes)
                  img/delete.gif  
        
      

    




******************* 
when execute the code, the console show:
****** Input:1
Now size a:0
Now Size b:1
to.getFileInput(0:1
****** Input:2
Now size a:1
First value:2
Now Size b:2
to.getFileInput(0:2
to.getFileInput(0:2
I first input 1 and then input 2 ,but the two value all become 2,why? Could
anyone help me to solve this question?
http://www.nabble.com/file/p12569419/test2.jpg 
-- 
View this message in context: 
http://www.nabble.com/Help-%21-CompoundPropertyMode-and-ArrayList-Question-tf4405830.html#a12569419
Sent from the Wicket - Dev mailing list archive at Nabble.com.

Reply via email to