Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115

    [JSP] Sintassi di include tra file separati

    Vorrei generare un file Utils.jsp in cui contenere tutti i metodi che potrei richiamare piu' volte all'interno del mio codice. Il primo metodo che vorrei implementare infatti e' proprio quello per la connessione al DB cosi' che nelle varie pagine mi basti richiamare il metodo per effettuare la connessione senza copia/incollare tutta la sintassi ogni volta.

    Ho fatto alcune prove ma purtroppo non sono riuscito nell'intento


    UTILS.JSP
    codice:
    <%!
    
        public void connection() {
            System.out.println("Collegamento Riuscito");
        }
    
    %>
    INDEX.JSP
    codice:
    <jsp:include page="Utils.jsp" />
    <%@page import="java.sql.*"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!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>Home</title>
        </head>
        <body>
            
    <%= connection() %>
        
         </body>
    </html>

    Quello che mi aspettavo era una pagina con scritto Collegamento Riuscito invece quello che ho è


    codice:
    The method connection() is undefined for the type index_jsp
    Sono a chiedervi quale la sintassi per linkare le 2 pagine e poter cosi' chiamare i vari metodi da Utils a tutte e altre pagine. Grazie!

  2. #2
    Mi sa che hai un po di confusione in testa una pagina jsp è appunto una pagina con codice java al suo interno e poi viene convertita in una servlet a runtime il tag include include all'interno della pagina un'altra pagina mentre una classe java con le sue proprietà e metodi è un'altra cosa.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Non ho capito molto scusami, Io intendevo fare una cosa che in PHP e' abbastanza comune ovvero includere in una jsp uno o piu' metodi che vengono da un'altra jsp

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Credo che in java sarebbe molto più pulito creare una classe con i metodi che ti servono e richiamare quella nella pagina jsp, piuttosto che tentare di definire metodo in una jsp a parte. Cosa che tra l'altro non ho mai visto fare prima...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Allora quello che vuoi fare non si fa così.
    Si utilizzano classi e non jsp con metodi.
    cmq sbagli anche nel farlo perchè connection non ritorna nulla e tu chiami <%= connection() %>.
    Non ho mai visto o fatto una cosa del genere ma forse se il tuo metodo connection() ritornasse una stringa invece di chiamare la system.out forse ti funziona.
    codice:
    <%!
    
        public String connection() {
            return ("Collegamento Riuscito");
        }
    
    %>

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    In effetti è solo un metodo di prova

    Quindi dovrei creare una classe con all'interno un metodo per la connessione.

    Come posso richiamare poi questo metodo nelle varie pagine?

    Devo instanziare un oggetto come il Java suppongo ma, provando e googlando non ho trovato la sintassi jsp per richiamare classi su pagine diverse da quelle della dichiarazione.

  7. #7
    Crei la classe TuaClasse con il tuo metodo connection poi importi la classe nella jsp con il relativo import
    codice:
    <%@page import="tuoPackage.TuaClasse"%>
    così puoi instanziare la tua classe ed accedere alle sue proprietà e metodi.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Ottimo! Grazie mille, ora non lo posso provare ma appena posso ti faccio sapere

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Eccomi!

    Allora ho preparato il file Utils.java

    codice:
    import java.sql.*;
    
    public class Utils {
    	
    	public void connection() {
    		try { 
    			Class.forName("com.mysql.jdbc.Driver");
    		} catch (Exception e) { System.out.println("class not found"); }
            try {
            	Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/protocollo", "root", "");
            } catch (Exception e) { System.out.println("sql error"); }
            System.out.println("Connessione Effettuata");
    	}
    }
    e ho messo in WEB-INF/classes il file Utils.class generato dalla compilazione di Utils.java.

    Ma non ho capito come devo modificare

    codice:
    <%@page import="tuoPackage.TuaClasse"%>
    ho provato un po tutto e googlato ma in effetti io non ho un package (immagino ti riferisca a un .jar ma solo un file .class

    e poi come faccio a instanziare un oggetto della classe e a utilizzare i suoi metodi?

    Grazie a tutti e scusate per queste domande noobbe! Spero che tutto ciò serva anche ad utenti futuri!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    una regola FONDAMENTALE è che tutte le classi che utilizzi nelle tue JSP / Servlet / Beans devono appartenere ad un package. Non è il tuo caso, mi pare di capire.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.