Salve a tutti, in un file jsp ho richiamato così la seguente classe:
E ho impostato la classe RicercaNazione nel seguente modo:codice:<%@pageimport= "tiw. RicercaNazione"%> <% String nn = request.getParameter("nazione".trim()); RicercaNazione rn = new RicercaNazione ("war/WEB-INF/Disoccupazione.csv", "war/WEB-INF/Sigle.txt"); out.print(rn.query(nn)); %>
Ho provato a usare un main per vedere se almeno su console mi stampava correttamente, ed infatti è così! Tuttavia quando eseguo come web non stampa nulla.codice:package tiw; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.HashMap; public class RicercaNazione { public HashMap <String, Nazione> ln; public ArrayList <Regione> lr; public HashMap <String, String> s; public RicercaNazione (String file1, String file2) { ln = new HashMap <String, Nazione> (); lr = new ArrayList <Regione> (); s = new HashMap <String, String> (); try { BufferedReader br = new BufferedReader (new FileReader (file1)); String line; while ((line = br.readLine()) != null) { String [] e = line.split(","); String nazione = e[0].substring(0, e[0].length()-2); String regione = e[1].trim(); Double valore = Double.parseDouble(e[2].trim()); Regione r = new Regione (nazione, regione, valore); lr.add(r); } br.close(); } catch (Exception e) { e.printStackTrace(); } try { BufferedReader br1 = new BufferedReader (new FileReader (file2)); String line2; while ((line2 = br1.readLine()) != null) { String [] e = line2.split("="); String codice = e[0].trim().toLowerCase(); String nome = e[1].trim().toLowerCase(); s.put(codice, nome); } br1.close(); } catch (Exception e ) { e.printStackTrace(); } for (int i=0; i<lr.size(); i++) { for (String j: s.keySet()) { if (lr.get(i).nazione.toLowerCase().trim().equals(j)) { Nazione n = ln.get(j.trim()); if (n == null) { Nazione n1 = new Nazione (s.get(j).trim(), j.trim()); ln.put(j.trim(), n1); n1.add_regione(lr.get(i)); } if (n != null) { n.add_regione(lr.get(i)); } } } } } public String query (String nn) { StringBuffer sb = new StringBuffer (); for (String i : ln.keySet()) { if (nn.toLowerCase().trim().equalsIgnoreCase(ln.get(i).nome.trim().toLowerCase())) { double td = (double) 0; double ts = (double) 0; for (int j=0; j<ln.get(i).regioni.size(); j++) { ts += ln.get(i).regioni.get(j).valore; } td = (double) ts / ln.get(i).regioni.size(); sb.append("<p class = \"center\">"+"Hai digitato <b>"+nn+"</b>" + "\t"+"il tasso di disoccupazione è:" + td +"</p>"); } } return sb.toString(); } public static void main (String [] args) { RicercaNazione rn = new RicercaNazione ("war/WEB- INF/Disoccupazione.csv", "war/WEB-INF/Sigle.txt"); System.out.print(rn.query("Ungheria")); } }
Potete aiutarmi ?

Rispondi quotando

