„A WEB programozása - Kidolgozott JSP feladatok - DirLister” változatai közötti eltérés
(Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|DirLister}} ==A DirLister feladat megoldása== Az alábbi kódot egy fejlesztőkörnyezettel generáltam (nem kicsit gyorsabb így össze…”) |
a (David14 átnevezte a(z) DirLister lapot a következő névre: A WEB programozása - Kidolgozott JSP feladatok - DirLister) |
(Nincs különbség)
|
A lap 2013. február 6., 01:58-kori változata
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
A DirLister feladat megoldása
Az alábbi kódot egy fejlesztőkörnyezettel generáltam (nem kicsit gyorsabb így összekattintgatni, mint vizsgán mindent begépelni...), szóval ne csodálkozz, ha esetleg lesz benne néhány "felesleges" tag vagy metódus. :) A kód egyáltalán nem tartalmaz semmiféle hibakezelést: ha nem létező utat adsz meg, annak bizony NullPointerException lesz a vége. Mindazonáltal a vizsgán nem volt követelmény a hibakezelés, szóval nemigen volt kedvem ezzel foglalkozni. ;)
A JavaBean (Dirlister.java):
package webprog; import java.io.File; import java.util.Vector; public class Dirlister { /** Creates a new instance of Dirlister */ public Dirlister() { } private String thepath; // a listázni kívánt elérési út private Vector files; // itt keletkezik majd az állományok listája private Vector dirs; // itt keletkezik majd a könyvtárak listája public String getThepath() { return thepath; } public void setThepath(String thepath) { this.thepath = thepath; } public Vector getFiles() { files = new Vector(); // a JSP oldalon faszán végig lehet iterálni egy Vector struktúrán File f = new File(thepath); File[] contents = f.listFiles(); // ez a metódus - nevével ellentétben - könyvtárakat is listáz for (int i = 0; i < contents.length; i++) { if (contents[i].isFile()) { // ha állományt találtunk, akkor annak nevét hozzáadjuk a Vectorhoz files.add(contents[i].getName()); } } return files; } public void setFiles(Vector files) { return; } public Vector getDirs() { // nagyjából minden ugyanaz, mint a getFiles()... dirs = new Vector(); File f = new File(thepath); File[] contents = f.listFiles(); for (int i = 0; i < contents.length; i++) { if (!contents[i].isFile()) { dirs.add(contents[i].getName()); } } return dirs; } public void setDirs(Vector dirs) { return; } }
Az ezt felhasználó JSP oldal (dirlister.jsp):
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Dirlister</title> </head> <body> <h1>Dirlister</h1> <form action="dirlister.jsp"> <input type="text" name="thepath" value="" /> <input type="submit" value="Mehet!" /> </form> <c:if test="${!empty param.thepath}"> <jsp:useBean id="lister" scope="page" class="webprog.Dirlister" /> <jsp:setProperty name="lister" property="thepath" value="${param.thepath}" /> <c:forEach items="${lister.dirs}" var="actelement"> <b>${actelement}</b><br/> </c:forEach> <c:forEach items="${lister.files}" var="actelement"> ${actelement}<br/> </c:forEach> </c:if> </body> </html>
-- Földe - 2007.01.23.