Matthias: Hyperlinks

Hallo zusammen,

ich benötige Hilfe. Hier ist mein Quellcode:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<%@ page import="java.io.*" %>
<%@ page import="TreeViewPack.*" %>
<%@ page import="Tools.FolderSort" %>

<html>
<head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>frame_links</title>
</head>
<body>
Abteilung

<%
String relPath = request.getSession().getServletContext().getRealPath("")+"\Daten";
File intradaten = new File (relPath);

String folder = request.getSession().getServletContext().getRealPath("")+"\Data";
TreeView tv2 = new TreeView();
         tv2.setTarget("Daten");
         tv2.setImagesUrl("Data/Treeview/Images/images_xp");

int counter=0;

File [] abteilung = intradaten.listFiles();

for (int i=0;i<abteilung.length;i++)
{
    if (abteilung[i].isDirectory()) //ob es ein Abteilungsordner ist
    {

File abteilungsOrdner=abteilung[i];
        File  [] inhaltAbteilungsOrdner= FolderSort.sortFolderByType(abteilungsOrdner.listFiles());
        tv2.add(tv2.createNode(abteilungsOrdner.getName()));
        counter = 0;
        for (int j=0;j<inhaltAbteilungsOrdner.length;j++)
        {
            if (inhaltAbteilungsOrdner[j].isDirectory() && inhaltAbteilungsOrdner[j].listFiles().length >0) //ob in dem Abteilungsordner sich ein Ordner befindet
            {
                File abteilungsDatenOrdner = inhaltAbteilungsOrdner[j];
                File [] abteilungsDatenOrdnerInhalt = FolderSort.sortFolderByType(abteilungsDatenOrdner.listFiles());
                tv2.getNodeList().item(i).add(tv2.createNode(abteilungsDatenOrdner.getName()));

for (int k=0;k<abteilungsDatenOrdnerInhalt.length;k++)
                {
                    if (abteilungsDatenOrdnerInhalt[k].isFile()) //ob in dem Abteilungsordner sich eine Datei befindet
                    {
                       tv2.getNodeList().item(i).getChildNodes().item(j).add(tv2.createNode(abteilungsDatenOrdnerInhalt[k].getName().substring(0,abteilungsDatenOrdnerInhalt[k].getName().length()-4),"/Intranet/Daten/" + abteilungsOrdner.getName() + "/" + abteilungsDatenOrdner.getName() + "/" +abteilungsDatenOrdnerInhalt[k].getName(),""));
                    }
                }
            }
            else if (inhaltAbteilungsOrdner[j].isFile())//Hierbei handelt es sich dann um eine Datei
            {
                File abteilungsDatei = inhaltAbteilungsOrdner[j];

tv2.getNodeList().item(i).add(tv2.createNode(abteilungsDatei.getName().substring(0,abteilungsDatei.getName().length()-4), "/Intranet/Daten/" + abteilungsOrdner.getName() +"/" + abteilungsDatei.getName(),""));
                tv2.getNodeList().item(i).getChildNodes().item(counter++).setTarget("Daten");
            }

}

}
}

out.println(tv2.getTree());

%>

</body>
</html>

es wird nun auf eine Datei verwiesen die Umlaute in ihrem Namen hat. Diese wird dann nicht angezeigt! Im IE7 geht es, im Firefox jedoch nicht!

Ich habe auch schon diesen Artikel gelesen,  http://forum.de.selfhtml.org/archiv/2006/8/t135687/#m880828, er hat mir jedoch nicht weitergeholfen!

Auf eine Antwort würde ich mich freuen

  1. Hallo Matthias.

    ich benötige Hilfe. Hier ist mein Quellcode:

    … welcher gänzlich unnütz ist. Poste ausschließlich den resultierenden HTML-Code oder besser noch: verlinke ihn gleich.

    Vermutung: du hast die Sonderzeichen nicht HTTP-gerecht kodiert.

    Ich habe auch schon diesen Artikel gelesen,  http://forum.de.selfhtml.org/archiv/2006/8/t135687/#m880828, er hat mir jedoch nicht weitergeholfen!

    Weshalb? Soweit ich sehe wird dort alles Relevante bereits genannt.

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hallo Matthias.

      ich benötige Hilfe. Hier ist mein Quellcode:

      … welcher gänzlich unnütz ist. Poste ausschließlich den resultierenden HTML-Code oder besser noch: verlinke ihn gleich.

      Vermutung: du hast die Sonderzeichen nicht HTTP-gerecht kodiert.

      Ich habe auch schon diesen Artikel gelesen,  http://forum.de.selfhtml.org/archiv/2006/8/t135687/#m880828, er hat mir jedoch nicht weitergeholfen!

      Weshalb? Soweit ich sehe wird dort alles Relevante bereits genannt.

      Weil ich schon die Zeichensätze geändert habe und dies nichts geholfen hat!

      Einen schönen Mittwoch noch.

      Gruß, Mathias

  2. Hi!

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

    Metatags gehören in den Head deines HTML-Dokumentes und nicht davor.
    An diese Stelle gehört eine DTD-Angabe, die du weggelassen hast.

    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

    Warum diesen Metatag hier noch einmal?

    es wird nun auf eine Datei verwiesen die Umlaute in ihrem Namen hat.

    Warum machst du so etwas?
    Ich käme gar nicht auf die Idee, Dateinamen mit Sonderzeichen/Umlauten zu vergeben.
    Und was meinst du mit "es wird nun auf eine Datei verwiesen"?
    Greifst du über das Dateisystem darauf zu oder per URL?
    Im ersten Fall ist es dann sicherlich ein Problem des verwendeten Zeichensatzes.
    Und für den zweiten Fall solltest du halt nicht direkt mit Umlauten im URL arbeiten, sondern diese entsprechend codieren.

    Diese wird dann nicht angezeigt! Im IE7 geht es, im Firefox jedoch nicht!

    PHP bietet die Funktion urlencode(). Bei JSP heißt es die Methode encodeURL(), glaube ich. Bin aber nicht ganz sicher.

    Schöner Gruß,
    rob

    1. es wird nun auf eine Datei verwiesen die Umlaute in ihrem Namen hat.
      Warum machst du so etwas?

      weil ich nicht ausschließen kann, das die User Dateinamen ohne Umlaute benutzen!

      Ich käme gar nicht auf die Idee, Dateinamen mit Sonderzeichen/Umlauten zu vergeben.
      Und was meinst du mit "es wird nun auf eine Datei verwiesen"?
      Greifst du über das Dateisystem darauf zu oder per URL?

      Über das Dateisystem, das mit dem Zeichensatz hab ich mir auch schon gedacht, ich habe schon mehrere Zeichensätze probiert, doch immmer bleibt das gleiche Problem.

      Im ersten Fall ist es dann sicherlich ein Problem des verwendeten Zeichensatzes.
      Und für den zweiten Fall solltest du halt nicht direkt mit Umlauten im URL arbeiten, sondern diese entsprechend codieren.

      »»

      Diese wird dann nicht angezeigt! Im IE7 geht es, im Firefox jedoch nicht!
      PHP bietet die Funktion urlencode(). Bei JSP heißt es die Methode encodeURL(), glaube ich. Bin aber nicht ganz sicher.

      Schöner Gruß,
      rob

      1. Hi!

        weil ich nicht ausschließen kann, das die User Dateinamen ohne Umlaute benutzen!

        Ja, und?
        Das Problem (wenn man es überhaupt Problem nennen mag), habe ich auch jedesmal, wenn ich Usern über ein Formular die Möglichkeit gebe, Dateien auf einen Server zu laden.
        Du könntest Umlaute und Sonderzeichen einfach rauslöschen.
        Aus "SchöneDatei.jpg" wird dann SchneDatei.jpg".
        Wenn du damit nicht leben kannst, kannst du natürlich auch "ö" in "oe" (und entsprechend mit anderen Umlauten) umwandeln.
        Und aus "Straße.png" machst du "Strasse.png" und aus "Dorothé.png" machst du dann "Dorothee.png" oder so ähnlich.
        Wenn du die Sonderzeichen in Dateinamen erst gar nicht zu läßt bzw. direkt umwandelst, dann ersparst du dir Nachher mitunter einiges an eventuell auftretenden Problemen.

        Schöner Gruß,
        rob

        1. Hi!

          weil ich nicht ausschließen kann, das die User Dateinamen ohne Umlaute benutzen!
          Ja, und?
          Das Problem (wenn man es überhaupt Problem nennen mag), habe ich auch jedesmal, wenn ich Usern über ein Formular die Möglichkeit gebe, Dateien auf einen Server zu laden.
          Du könntest Umlaute und Sonderzeichen einfach rauslöschen.
          Aus "SchöneDatei.jpg" wird dann SchneDatei.jpg".
          Wenn du damit nicht leben kannst, kannst du natürlich auch "ö" in "oe" (und entsprechend mit anderen Umlauten) umwandeln.
          Und aus "Straße.png" machst du "Strasse.png" und aus "Dorothé.png" machst du dann "Dorothee.png" oder so ähnlich.
          Wenn du die Sonderzeichen in Dateinamen erst gar nicht zu läßt bzw. direkt umwandelst, dann ersparst du dir Nachher mitunter einiges an eventuell auftretenden Problemen.

          Schöner Gruß,
          rob

          Ja das ist mir ja klar, trotzdem würde ich gerne das Problem behoben haben :-) Mich wundert es halt, das eine Datei im IE7 angezeigt wird und im FF nicht!

          1. Hi!

            Ja das ist mir ja klar, trotzdem würde ich gerne das Problem behoben haben :-) Mich wundert es halt, das eine Datei im IE7 angezeigt wird und im FF nicht!

            Da braucht man sich nicht wundern.
            Warum setzt du keine URL-Codierung für die Umlaute ein?

            http://forum.de.selfhtml.org/archiv/2002/9/t22799/
            http://netzreport.googlepages.com/online_tool_zur_url_kodierung_de.html

            Schöner Gruß,
            rob