Zum Inhalt springen

Struts Problem


Popeye1979

Empfohlene Beiträge

Hi!

Unglaublich aber wahr: Ich scheiter bereits an einem abgedruckten HelloWorld-Beispiel!!! :uli

Habe das Beispiel von http://www.informit.com/isapi/product_id~{A24BE7CC-915F-48D1-8026-16B38304C47B}/st~{94C03A97-1188-4875-8A06-17743BA224B7}/session_id~{7A1B2259-2F71-4975-AA63-21099995AD46}/content/articlex.asp

übernommen und es kommt ein Fehler in der hello.jsp an der Stelle des Formulars!

<html:form action="/HelloWorld.do?action=gotName" focus="username" >

Und zwar kommt er nicht mit dem HelloWorld.do?action=gotName..... zurecht!

Kann mir das mal bitte jmd erklären was da genau passieren soll???

Vielen Dank im Voraus!

Gruss

Jo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Popeye1979

<html:form action="/HelloWorld.do?action=gotName" focus="username" >

Und zwar kommt er nicht mit dem HelloWorld.do?action=gotName..... zurecht!

Ich kenn mich zwar nicht mit Struts aus, aber der Aufruf der Javaklasse sieht falsch aus.

Versuche es doch mal mit

<html:form action="/HelloWorld?doaction=gotName" focus="username" >

Ansonsten poste mal die Fehlermeldung.

Gruß

ET

Link zu diesem Kommentar
Auf anderen Seiten teilen

<html:form action="/HelloWorld.do?action=gotName" focus="username" >

Stand das wirklich so in dem Artikel?

Dann sollten die den aber nochmal überarbeiten.

Das wäre z.B. ein gültiger Tag.

<html:form action="/HelloWorld" focus="username">

Es wird der Name der Aktion (mit / am Anfang) geschrieben ohne das .do.

Es wird ein HTML-Formular erstellt(HTML-Tag form) mit der Angabe der Action wird die Ziel-URl festgelegt (HTML-Attribute auch action). Bei Struts wird allerdings nicht die URL angegeben sondern die Action, die nach dem Absenden des Forumlars auf dem Server ausgeführt werden soll, hier /HelloWorld.

Zuerst die Validierung des Form-Objekts und danach die Action selbst.

Die zusätzlichen Parameter action=gotName sollte man per Hidden-Input-Feld übergeben.

<html:hidden property="action" value="getName"/>

Korrigierte Version:

<html:form action="/HelloWorld" focus="username" >

<html:hidden property="action" value="getName"/>

<bean:message key="hello.jsp.prompt.person"/>

<html:text property="person" size="16" maxlength="16"/><br>

<html:submit property="submit" value="Submit"/>

<html:reset/>

</html:form><br>

Ich hoffe das es läuft, habe im Moment keine Möglichkeit zum Testen.

Aber so habe ich die form-Tags in meinen Projekten benutzt und damals lief es

(Struts < 1.1)

Grüße

themaster

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja das mit dem .do gibs in Struts schon! Da ruft der halt meines Wissens die ActionKlasse auf! Nur erstes Problem es gibt ne HelloAction aber kein HelloWorld, HelloWorld ist das Projekt.

Und was soll das hinter dem Fragezeichen sein? Diese action="gotName"??

Als Fehler kommt "Das Ziel /HelloWorld.do?action=gotName ist in den folgenden Modulen nicht vorhanden: /"

:confused: :confused: :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ausschnitt struts-config.xml:

<action path = "/HelloWorld"

type = "ch03.hello.HelloAction"

name = "HelloForm"

scope = "request"

validate = "true"

input = "/hello.jsp"

>

Die Action-Klasse heißt HelloAction aber die Action wird mit /HelloWorld aufgerufen (Attribute path).

Das .do wird von Struts selbstständig angefügt bei <html:form> wird es nicht angegeben.

Hintergrund:

Struts kannst du auf zwei Arten betreiben.

1) Endung .do

2) /do/Actionname

Damit man nicht jedes Formular im Projekt ändern muss, wenn man die Einstellung ändert, wird die Endung bzw. das /do/ von Struts automatisch eingefügt (jeweils mit den aktuellen Einstellungen)

Normalerweise (d.h. bei normalen URL-Parametern) werden mit dem Fragezeichen nach einer Zielseite weitere Parameter übergeben. So ähnlich wie die Eingabefelder im Formular auch als Parameter übergeben werden.

Aber in <html:form> ist das so nicht möglich, weil dort nur der Name der Action steht.

Deshalb sollte man die weiteren Parameter per versteckten Eingabefeld übergeben.

Die Fehlermeldung ist klar:

/HelloWorld.do?action=gotName: Es gibt ja auch keine Action die so heißt. Es gibt nur /HelloWorld.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...