Announcement

Collapse
No announcement yet.

browser zeigt action.do und nicht seite.jsp an. --> Fehler. Wie verlinkt man relativ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • browser zeigt action.do und nicht seite.jsp an. --> Fehler. Wie verlinkt man relativ?

    folgender aufbau:

    + test
    index.jsp <-- hier gibts die login action
    + css
    css.css
    + base
    seite1.jsp <-- hier zeigt der forward der "login.do" hin
    seite2.jsp

    so, also nach dem login ist man eigentlich auf base/seite1.jsp
    (der browser zeigt aber noch login.do an) wenn ich jetzt von seite1 per href auf seite2.jsp verlinke sieht das bei mir so aus:

    <a href="seite2.jsp" > seite2</a>

    seite2.jsp liegt im gleichen ordner wie seite1. sollte also gehn.
    der tomcat (5.0.30) meldet dann aber er kann "localhost:8080/test/seite2.jsp" nicht finden. das ist ja auch klar denn die seite ist unter "localhost:8080/test/base/seite2.jsp" zu finden.

    beim css.css file ists das gleiche. von seite1.jsp aus zeigts auf:
    <link rel="stylesheet" type="text/css" href="../css/css.css"></head>
    das wird dann auch nicht gefunden.

    wenn ich jetzt aber in die browserzeile das fehlende "base/" nich einfüge geht alles.

    das versteh ich nicht...

    würd mich freuen wenn mir wer helfen kann.

    gruss flo

  • #2
    Hi Flo,
    zwei Fragen:

    1.) Kannst Du noch mal die entspr. Action-Elemente aus der struts.xml posten?
    2.) Benutzt Du Frames? ("login.do bleibt stehen")

    Gruß ngm
    http://www.winfonet.eu

    Comment


    • #3
      Hi,

      nein ich benutze Tabellen.
      mein action sieht so aus

      <action-mappings>
      <action path="/login"
      type="frontend.action.LoginAction"
      name="loginFormular"
      scope="request">
      <forward name="success" path="/base/seit1.jsp" />
      <forward name="failure" path="/error.jsp" />
      </action>
      </action-mappings>

      wie machst du/ihr das denn so?
      von der verzeichnisstruktur ist das doch ok wie ich da oben
      gepostet habae oder?

      gruss fl

      Comment


      • #4
        Hi Florian,

        zu Deiner Frage: Ich verlinke nie direkt auf Jsps, sondern immer auf Actions, von denen aus ich auf die Jsp forwarde. (Deswegen ist mir das Problem nie aufgefallen.) Das mache ich, weil man immer irgendwas mit Logik machen muss, die man lieber nicht in die Jsp packt (z.B. irgendwas laden, prüfen ob Parameter im Request vorhanden, Session da? etc).

        Und zu Deinem Problem, die Lösung und die Antwort findest Du in der Beschreibung zum Struts-Tag <i>html:base</i>. Der Browser sucht nämlich immer relativ zur URL, zu der der letzte Request hinging. Deswegen funktioniert auch alles, wenn Du das "base" im Browser einfügst. Um das Verhalten zu ändern gibt es in Html das Base-Element und in Struts den html:base-Tag. Im Netzt gibt es übrigens haufenweise Diskussionen, ob dokumentrelative Links (so wie Du es gemacht hast) oder kontextrelative Links (Nur Host und Kontext werden weggelassen, restl. Pfad vollständig) sinnvoller sind und die meisten raten zu kontextrelativen Links
        http://www.winfonet.eu

        Comment


        • #5
          Vielen Dank für die Antwort.
          Ich geh jetzt auch über die Actions.
          Hab jetzt zu oft gelesen das man das so machen soll

          Wobei ich, wenn ich wirklich nichts prüfen will, einfach im forward das Attribut "parameter" im Action-Path mit der nächsten Seite angeben. Dann braucht man keine Actionklasse.

          Fl

          Comment

          Working...
          X