Thanks for Alex's suggestion. Thank you!
Alex Objelean wrote: > > John, sorry for not being helpful. But I think that this kind of posts > (this is my code, why it doesn't work?) will not help you to find the > problem. My suggestion is, try to debug your code, and if you have a more > specific question, post it and somebody for sure will give you an answer. > Otherwise, everybody will just overlook your post. The most of developers > are too lazy to find what exactly is not right with your code. > > Alex. > > > > > JohnSmith333 wrote: >> >> 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"?> >> <html xmlns="http://www.w3.org/1999/xhtml" > >> <head> >> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> >> <title></title> >> </head> >> <body> >> >> <form wicket:id="uploadform"> >> >> <!-- [[ajax upload progressbar]] --> >> <table border="1"> >> <tr><td> >> <label for="file">File</label> >> </td> >> <td> >> <input type="text" wicket:id="fileInput" /> >> <!-- <input wicket:id="fileInput" type="file" size="20" >> maxlength="20"/> --> >> </td></tr> >> <tr><td> >> <label for="note">Note</label> >> </td> >> <td> >> <textarea wicket:id="fileNotes" cols="20" rows="5"></textarea> >> <input type="submit" value="Submit"/> >> </td></tr> >> </table> >> </form> >> <div> >> >> </div> >> >> <div> >> >> <table width="240" border="1" bordercolor="orange" >> wicket:id="data"> >> <tr> >> <th width="100">File</th> >> <th width="100">Notes</th> >> <th width="50">Del</th> >> </tr> >> <tr wicket:id="testList"> >> <td wicket:id="file">(file)</td> >> <td wicket:id="notes">(notes)</td> >> <td> img/delete.gif </td> >> </tr> >> </table> >> </div> >> </body> >> </html> >> >> ******************* >> 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#a12571457 Sent from the Wicket - Dev mailing list archive at Nabble.com.