2010-06-01 22 views
6

Ho scritto codice come servlet Java e ora sto provando a convertirlo in JSP. Ho scritto una classe in un file separato che stavo usando, e non riesco a capire come ottenere il file JSP per riconoscere la classe. Immagino che abbia qualcosa a che fare con l'importazione. Ho dato alla classe un nome del pacchetto (package mypackagename;) e ho provato ad utilizzare <%@ page import="mypackagename"%> ma ottengo un errore:Importazione di una classe in un file JSP

The import "mypackagename" cannot be resolved

+0

possibile duplicato di [Come si importano le classi in JSP?] (http://stackoverflow.com/questions/239147/how-do-you-import-classes-in-jsp) – jjnguy

risposta

9

Basta importare nello stesso modo come si fa in una vera e propria classe Java. Cioè import mypackagename.MyClassName o import mypackagename.* e quindi nonimport mypackagename con solo il nome del pacchetto.

<%@ page import="mypackagename.MyClassName" %> 

Detto questo, non si dovrebbe scrivere codice Java prime in un file JSP. Gli scriptlet sono considerati di scarsa pratica. Quel codice appartiene a una vera classe Java. Si trovava perfettamente nella classe Servlet. Di cosa si tratta, il problema per il quale pensi che sia la soluzione "giusta" per spostare tutto nel lato della vista e ingombrare il testo del template con codice Java raw? Elaborato su di esso in una nuova domanda, quindi potremmo essere in grado di suggerire le giuste soluzioni. Forse non eri a conoscenza dell'esistenza e dei poteri di tagli come JSTL?

+0

Non sono troppo sicuro di cosa intendi per codice java grezzo in un file jsp. la maggior parte del mio codice è nella classe che voglio importare, voglio solo eseguire il codice dalla classe nel file JSP e visualizzare i risultati. – Michoel

+1

Con codice Java non elaborato, intendo l'oltre un decennio * scriptlet * scoraggiato. Tutto quel codice Java tra quelle cose '<% %>'. Nel tuo caso specifico, basta eseguire quel codice nel servlet, archiviarlo come attributo di richiesta e visualizzarlo usando JSTL/EL. [Qui] (http://stackoverflow.com/questions/1831053/displaying-multiple-records-by-using-resultset/1832524#1832524) e [qui] (http://stackoverflow.com/questions/384189/how -do-i-make-a-java-resultset-available-in-my-jsp/2428468 # 2428468) sono alcuni esempi. [Qui] (http://courses.coreservlets.com/Course-Materials/csajsp2.html) è la migliore guida per JSP/Servlet. – BalusC

0

Assicurarsi che la classe è in WEB-INF/classes directory dell'applicazione web, e modificare l'importazione del pacchetto per pacchetto. *

+0

grazie per il suggerimento sul. * Alla fine. Sto solo imparando java quindi me ne sono dimenticato. non sapevo che i file dovevano andare in WEB-INF/classes, si trovavano in src/Per qualche ragione eclipse non mi permette di creare una nuova directory in WEB-INF? (Sto usando il plugin per google appengine) – Michoel

Problemi correlati