[ strain @ 08.03.2012. 14:50 ] @
Na faxu sam dobio sledeci zadatak: Tekst zadatka: Napraviti Tapestry aplikaciju kojoj uploadujemo zip fajl. Aplikacija raspakuje fajl u neki unapred zadati foler i na strani prikaže spisak svih fajlova iz tog foldera. Napomena: Aplikacija ovo treba da radi pomoæu Ajax tehnologije što znaèi da ne prikazuje novu stranu veæ da to radi asinhrono na istoj strani. Što znaèi da na istoj strani se uploaduje fajl i kada se upload završi odreðen deo strane prikaže informaciju o sadržaju fajla. I ja sam uradio da se odabrani zip raspakuje, ali nikako da uspem da prikazem listu na strani. Znam to treba pomocu @InjectComponent... ali nikako da to uradim kako treba vec dva dana se maltretiram i nikako da resim evo ovo je kod. Index.java Code: package cs230.bi175.dz01.pages; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.corelib.components.Zone; import org.apache.tapestry5.upload.services.UploadedFile; /** * * @author Marko Strainovic */ public class Index { @Property private UploadedFile file; @InjectComponent private Zone spisak; @Property private List<String> fileList; private static final String OUTPUT_FOLDER = "C:\\outputzip"; public Object onSuccess() { dekompresija(file.getFilePath(), OUTPUT_FOLDER); return spisak; } /**Raspakuje zip file na unapred definisanu lokaciju * * @param zipFile - fajl koji treba raspakovati * @param outputFolder - folder u koji ce zipFile biti raspakovan */ public void dekompresija(String zipFile, String outputFolder){ byte[] buffer = new byte[1024]; try{ //creira output direktorijum ako ne postoji File folder = new File(OUTPUT_FOLDER); if(!folder.exists()){ folder.mkdir(); } //uzima sadrzaj zip fajla ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile)); //uzima listu zipovane datoteke ZipEntry ze = zis.getNextEntry(); while(ze!=null){ String fileName = ze.getName(); File newFile = new File(outputFolder + File.separator + fileName); System.out.println("file unzip : "+ newFile.getAbsoluteFile()); //kreira sve nepostojece foldere //inace se dobija FileNotFoundException za kompresovane foldere new File(newFile.getParent()).mkdirs(); FileOutputStream fos = new FileOutputStream(newFile); int len; while ((len = zis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.close(); ze = zis.getNextEntry(); } zis.closeEntry(); zis.close(); System.out.println("Done"); }catch(IOException ex){ ex.printStackTrace(); } } } Index.tml Code: <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>${message:title}</title> </head> <body> <h1>${message:title}</h1> <t:form> <t:errors/> <input t:type="upload" t:id="file" validate="required"/> <br/> <input type="submit" value="Upload"/> </t:form> <t:zone t:id="spisak" id="spisak"> </t:zone> </body> </html> Da li neko zna gde gresim, odnosno sta fali? |