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.