Popeye1979 Geschrieben 4. September 2003 Teilen Geschrieben 4. September 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ETnachHause Geschrieben 4. September 2003 Teilen Geschrieben 4. September 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
themaster Geschrieben 4. September 2003 Teilen Geschrieben 4. September 2003 <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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Popeye1979 Geschrieben 4. September 2003 Autor Teilen Geschrieben 4. September 2003 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: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
themaster Geschrieben 4. September 2003 Teilen Geschrieben 4. September 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Popeye1979 Geschrieben 4. September 2003 Autor Teilen Geschrieben 4. September 2003 Es funktioniert! :OD Dank dir themaster! PS: Aber schon toll das das im Buch falsch ist!! Unglaublich!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 4. September 2003 Teilen Geschrieben 4. September 2003 Original geschrieben von Popeye1979 PS: Aber schon toll das das im Buch falsch ist!! Unglaublich!! Nun ja, es gibt halt gute und schlechte Bücher. Arbeite lieber mit dem struts-example.war aus dem Struts Binary und schaue dir an wie die da was gemacht haben. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.