Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [JSP]Problema inclusione pagine su netbeans

    Ciao a tutti,
    sto sviluppando la mia prima applicazione web object oriented con java server page.
    Ho molta difficoltà ad entrare nella logica oop ma faccio del mio meglio per sfruttare tutte le sue potenzialità.
    Per questo ho creato una classe che mi permettesse di gestire i contenuti semistatici come header e footer da altri file jsp mentre quelli dinamici da altri file jsp però segnalati da una variabile passata via get dall'utente.
    Il problema è che vengono catturate sempre delle eccezioni durante la ricerca del file come se non lo trovasse, io credo dipenda dalla posizione della classe rispetto alla index visto che si trovano in cartelle diverse, ecco i vari codici:

    codice:
    package utils;
    
    import java.util.Scanner;
    import java.io.File;
    import java.io.FileNotFoundException;
    
    /**
     *
     * @author lomiz
     */
    public class GestioneContenuto {
    
        private String Header; //la testa della pagina
        private String Content; //i contenuti della pagina
        private String Footer; //il fondopagina
    
        /**
         * Forzo l'utilizzo dell'altro costruttore
         */
        public GestioneContenuto() {
            //assegno la pagina di default tranne per il contenuto che viene tenuto vuoto
            this(fileToString("pages/header.jsp"), "", fileToString("pages/footer.jsp"));
        }
    
        /**
         * Costruttore principale
         * @param header
         * @param content
         * @param footer
         */
        public GestioneContenuto(String header, String content, String footer) {
            this.Header = header;
            this.Content = content;
            this.Footer = footer;
        }
    
        public String getContent() {
            return Content; //ottengo i contenuti
        }
    
        public void setContent(String categoria) { //categoria=valore che viene passato via get
            String page; //uri reale della pagina da includere
            if (categoria == null || categoria.equals("main")) {//se non viene passato alcun valore uso la pag di default
                page = "pages/main.jsp";
            } else if (categoria.equals("news")) {
                page = "pages/news.jsp";
            } else if (categoria.equals("thanks")) {
                page = "pages/thanks.jsp";
            } else {
                page = "pages/errore.html";
            }
            this.Content = fileToString(page); //trasformo il file in stringa e l'assegno al contenuto 
        }
    
        public String getFooter() {
            return Footer; //ottengo il footer
        }
    
        public void setFooter(String uriFooter) { //uriFooter= indirizzo del footer
            this.Footer = fileToString(uriFooter); //trasformo il file in stringa e l'assegno al footer
        }
    
        public String getHeader() {
            return Header; //ottengo l'header
        }
    
        public void setHeader(String uriHeader) {
            this.Header = fileToString(uriHeader); //trasformo il file in stringa e l'assegno all'header
        }
    
        private static String fileToString(String fileUri) {//trasforma un file in stringa
            String st = "";
            try {
                File file = new File(fileUri);
                Scanner s = new Scanner(file);
                while (s.hasNextLine()) {//scorri linea per linea fino a quando il file ha atre linee
                    st += s.nextLine() + "\n";
                }
            } catch (FileNotFoundException e) { //catturo eccezione nel caso il file non si trovi
                st = "Il file non è stato trovato. Contattare l'amministratore";
            }
            return st;
        }
    }
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*,java.util.*"%>
    
    <jsp:useBean id="contenuti" scope="session" class="utils.GestioneContenuto" />
    
    <%
    String header=contenuti.getHeader();
    contenuti.setContent(request.getParameter("categoria"));
    String content=contenuti.getContent();
    String footer=contenuti.getFooter();
    
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
        
        <head>
            <title>Sony e Canti</title>
            <meta content="lol" />
            
            <link rel="stylesheet" type="text/css" media="handheld" href="handheld.css"/>
    
            <link rel="stylesheet" type="text/css" media="print" href="print.css"/>
    
            <style type="text/css">
                @import url(styles/style.css);
            </style>
    
        </head>
    
        
    
            
        <body>
            <div id="container">
                <div id="header">
                    <%= header %>
                </div>
    
                <div id="content">
                    <%= content %>
                </div>
    
                <div id="navigation">
                    <div id="navcontainer">
                        <ul id="navlist">
                            <li id="active">Index[*]News[*]Ringraziamenti[/list]
                    </div>
                </div>
    
                <div id="footer">
                    <%= footer %>
                </div>
            </div>
        </body>
    </html>
    Ecco invece la struttura ad albero dei file interessati:



    Vi sarei molto grato se foste in grado di darmi consigli!
    Grazie!

  2. #2
    Mi sono sbagliato, la vera struttura dei file è questa:

  3. #3

  4. #4

  5. #5

  6. #6
    Ho fatto qualche progresso, nell'eccezione ho messo un System.getProperty("user.dir"); ed ho scoperto che sono nella directory home dell'utente del computer (in questo caso su windows C:\Documents and Settings\lomiz\.personalDomain\personalDomain\conf ig e presumo su linux /home/lomiz/).

    Qualcuno sa consigliarmi qualche soluzione? Sarebbe assurdo mettere un url assoluto in quanto questo progetto continuo a lavorarci su diversi computer e su diversi os.

    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    44
    Salve,

    io i vari pezzi della pagina li includo direttamente nella jsp...

    <%@ include file="template/header.jsp" %>
    <%@ include file="template/footer.jsp" %>

    nella posizione dove lo voglio.

    Cia cia

  8. #8
    Anche io al primo stadio del lavoro ho fatto così, ma adesso sto cercando oltre a rendere il codice riutilizzabile, anche di utilizzare il paradigma model control view quindi devo separare il più possibile la formatazione dal codice.

    Grazie in ogni caso dell'aiuto!

    Qualcun altro è in grado di aiutarmi?

  9. #9
    Nessuno in grado di aiutarmi?

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.