|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Jsp,servlet,jdom,bean: primi passi
Ciao a tutti. Apro questa discussione per rivolgere domande ai piu esperti su queste tecnologie, visto che sono alle prime armi.
Il mio primo problema è questo. Ho una pagina HTML e una JSP. Ecco i codici. Codice:
<html> <head> <title>Scelta Compagnia</title> </head> <body> <form action="benvenuto.jsp" METHOD="get"> Scegli la compagnia:<br> <input type="radio" name="compagnia" value="Alitalia"> Alitalia <br> <input type="radio" name="compagnia" value="KLM"> KLM <br> <input type="radio" name="compagnia" value="British Airways"> British Airways <br> <input type="hidden" name="pagina" value="scelta_compagnia"> <button type="submit">Vai alla Compagnia scelta</button> </form> </body> </html> Codice:
<html>
<head>
<title>Benvenuto</title>
</head>
<body>
<%String compagnia = request.getParameter("compagnia");
if(request.getParameter("pagina")=="scelta_compagnia")
{out.println("Benvenuto alla pagina della compagnia di volo: " + compagnia);}
else
{out.println("Bentornato alla pagina della compagnia di volo: " + compagnia);} %>
</body>
</html>
Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
if(request.getParameter("pagina").equals("scelta_compagnia"))
...
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ho risolto, grazie mille!!!
Ora ho un altro problema. Ho un file xml e sto scrivendo una classe java per accederci. Questo è l'xml: Codice:
<database> <volo> <compagnia>Alitalia</compagnia> <partenza>Nap</partenza> <destinazione>rom</destinazione> <tipo>scalo</tipo> <oraPartenza>11</oraPartenza> <minutiPartenza>40</minutiPartenza> <postiBusiness>300</postiBusiness> <postiEconomy>14</postiEconomy> <prezzoBusiness>200</prezzoBusiness> <prezzoEconomy>100</prezzoEconomy> </volo> </database> Codice:
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import java.io.File;
import java.io.FileNotFoundException;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import java.io.IOException;
import org.xml.sax.SAXParseException;
public class GestioneDB{
private Document document;
String file = "E:\\Programmi\\Apache Software Foundation\\Tomcat 5.5\\webapps\\appello2\\voli.xml";
//Costruttore
public GestioneDB(){
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(true);
DocumentBuilder builder = factory.newDocumentBuilder();
//Creao un Node che si riferisce al file "voli.xml"
document = builder.parse(new File(file));
}
catch(ParserConfigurationException e){}
catch(SAXException r){r.printStackTrace();}
catch(FileNotFoundException me){}
catch(IOException t){}}
//Metodi
public void cercaVolo(){
Document doc = (Document) document;
System.out.println(doc.getNodeName());
}
}
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 252
|
La prima cosa che mi salta all'occhio è che il path del file ha un sacco di spazi...dalla quello che ho potuto vedere java e gli spazi nei path non vanno granchè d'accordo..prova a spostare tuo xml in un path senza spazi.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Naples
Messaggi: 3903
|
Boysna questo mi pare proprio uguale all'esame di TSW del professor Costagliola o mi sbaglio
__________________
Cancellato stare lucido dal mio vocabolario -Speaker Cenzou- |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Io per l'xml uso la libreria JDom
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Quote:
Secondo me l'errore è nel file xml, ma non vedo quale sia. Il file è di una struttura molto semplice. |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Quote:
|
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 252
|
Ne provo un'altra...nell'xml c'è l'intestazione o parte diretto col tag database ??
una cosa tipo <?xml version="1.0" encoding="UTF-8"?> |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ho messo questo tag ma niente da fare. Comunque puoi cntrollare il codice dela classe GestioneDB se è OK? Ho qualche dubbio in merito.
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Su un esempio che ho viene importato il pacchetto "com.sun.xml.tree.XmlDocument". Ho provato a importarlo ma mi dice che non esiste.
Sarà che c'è bisogno di questo pacchetto? Ultima modifica di boysna : 13-04-2006 alle 11:22. Motivo: e mancava la e di esempio ke ca.... |
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 252
|
Allora ho provato...sono riuscito a farmi tornare il nome del tag root ossia database.
ho modificato queste righe Codice:
factory.setValidating(false); System.out.println(document.getDocumentElement().getTagName()); |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Pare che il documento xml non era valido. Mancava il DOCTYPE. Ma nonostante sia riuscito a validarlo l'errore rimane sempre.
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ho risolto.
In GestioneDB dovevo mettere builder.setErrorHandler(new MyErrorHandler) dopo l'istruzione: document = builder.parse(new File(file)). E poi creare la classe MyErrorHandler. Poi ho modificato l'xml mettendo un attributo al "volo", cosi: Codice:
<database> <volo id="sdhfhc"> <compagnia>Alitalia</compagnia> <partenza>Nap</partenza> <destinazione>rom</destinazione> <tipo>scalo</tipo> <oraPartenza>11</oraPartenza> <minutiPartenza>40</minutiPartenza> <postiBusiness>300</postiBusiness> <postiEconomy>14</postiEconomy> <prezzoBusiness>200</prezzoBusiness> <prezzoEconomy>100</prezzoEconomy> </volo> </database> Io ho fatto questo: Codice:
public void cercaVolo(String compagnia){
Element root = document.getDocumentElement();
//Ciclo sui figli di database
for (int i=0; i<root.getChildNodes().length(); i++ ) {
//Ciclo sui figli di volo
for(int j = 0; j< root.getChildNodes().item(i).getChildNodes().length(); j++){
if(root.getChildNodes().item(i).getChildNodes().item(j).getNodeName()=="compagnia"){
if(root.getChildNodes().item(i).getChildNodes().item(j).getChildNodes(1).getNodeName().isequal(compagnia)){
System.out.println(root.getChildNodes().item(i).getAttribute());
}
}
}
}
}
Sopratutto perchè dice che uso metodi che non esistono. Mah... |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ho risolto il problema dei metodi non trovati. Era il length che si chiama getLength(). Comunque ora lo compila ma mi restituisce un errore di null pointer.
Ecco il codice aggiornato: Codice:
public class GestioneDB{
private Document document;
String file = System.getProperty("user.dir") + "\\" + "voli.xml";
//Costruttore
public GestioneDB(){
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(true);
DocumentBuilder builder = factory.newDocumentBuilder();
//Creao un Node che si riferisce al file "voli.xml"
builder.setErrorHandler(new MyErrorHandler());
document = builder.parse(new File(file));
}
catch(ParserConfigurationException e){}
catch(SAXException r){r.printStackTrace();}
catch(FileNotFoundException me){}
catch(IOException t){}}
//Metodi
public void cercaVolo(String compagnia){
Element root = document.getDocumentElement();
//Ciclo sui figli di database
for (int i=0; i<root.getChildNodes().getLength(); i++ ) {
//Ciclo sui figli di volo
for(int j=0; j< root.getChildNodes().item(i).getChildNodes().getLength(); j++){
if(root.getChildNodes().item(i).getChildNodes().item(j).getNodeName()=="compagnia"){
if(root.getChildNodes().item(i).getChildNodes().item(j).getChildNodes().item(1).getNodeName()==compagnia){
System.out.println(root.getChildNodes().item(i).getAttributes());
}
}
}
}
}
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Qualcuno mi dice com'è la struttura ad albero di questo file xml?
Codice:
<database> <prodotto id="tre"> <categoria>notebook</categoria> <marca>Asus</marca> <modello>3200+</modello> <quantita>5</quantita> <prezzo>11</prezzo> <giornoImmissione>4</giornoImmissione> <meseImmissione>3</meseImmissione> <annoImmissione>2006</annoImmissione> <rata>si</rata> <numeroRate>24</numeroRate> </prodotto> </database> |
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Quote:
Il problema ora è un altro però. Guarda piu giu. grazie e scusa ancora. |
|
|
|
|
|
|
#19 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 252
|
La struttura ad albero dovrebbe essere
database ha come figlio prodotto che ha come figli tutti gli altri. Ma sei obbligato a usare dom? perchè se usi dom4j è molto + semplice la cosa. |
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Naples
Messaggi: 3903
|
Quote:
__________________
Cancellato stare lucido dal mio vocabolario -Speaker Cenzou- |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:39.



















