Struts - ActionForward

Status
Nicht offen für weitere Antworten.

Molloy

Mitglied
Hallo, Forum.

Ich versuche mich für ein Praktikum mit Struts einzuarbeiten und im Rahmen dieser Einarbeitung wollte ich klein anfangen, mit einem einfachen ReDirect, was auch ein gern genommenes Beispiel in Einsteigertutorials ist, soweit ich das überblicke.

Jetzt hänge ich aber schon seit 2 Tagen über diesem verfluchtem Einsteigertutorial und versteh die Welt nicht mehr. 90% des Codes sind stur abgetippt (Halte mich dabei an "First Stepts with Jakarta Struts - Part 1" von sitepoint.com), und die restlichen 10% sind lediglich Umbenennen von Klassen-/Variablennamen, aber trotzdem hämmert es mir reihenweise Fehlermeldungen um die Ohren.

Die betreffenden Dateien sind:

web.xml:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <display-name>Struts Test</display-name>
    <description>
      Struts Test
    </description>


    <context-param>
      <param-name>webmaster</param-name>
      <param-value>myaddress@mycompany.com</param-value>
      <description>
        The EMAIL address of the administrator to whom questions
        and comments about this application should be addressed.
      </description>
    </context-param>
    
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param> 
   		<param-name>config</param-name> 
   		<param-value>/WEB-INF/struts-config.xml</param-value> 
	 </init-param>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


</web-app>


struts-config.xml:
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>

  <data-sources />
   
  <global-exceptions />

  <global-forwards>
     <forward name="falsch" path="/Falsch.do" />
     <forward name="wronglogin" path="/WrongLogin.do" />
   </global-forwards>
   
  <action-mappings>

    <action path="/Falsch" forward="/pages/Login.jsp" />
    <action
     path="/WrongLogin"
     type="de.test.inhouse.htmlforward.WrongLogin"
     scope="request">
     <forward
       name="login"
       path="/pages/Login.jsp"
     />
   </action> 
    
  </action-mappings>
  
</struts-config>

WrongLogin.java:
Code:
package de.test.inhouse.htmlforward;

import org.apache.struts.action.*;
import javax.servlet.http.*;


public class WrongLogin
	extends Action
{
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 
		throws Exception 
	{ 
		request.setAttribute("nachricht", new String("Zugriff ohne vorherigen Login nicht gestattet!"));
		return mapping.findForward("login");
	}
}

minitest.jsp:
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="logic" uri="/WEB-INF/struts-logic.tld" %>
	<logic:forward name="falsch" />


Wenn ich die minitest.jsp versuche aufzurufen, kommt "Error 500" und "Cannot find global ActionForward for name falsch"
Wenn ich es über "/WrongLogin.do" direkt in der Adressleiste des Browsers versuche kommt "Error 404" und "Servlet action is not available", was ich jetzt überhaupt nicht nachvollziehen kann. Schliesslich hab ich den passenden Typ zum path doch in der struts-config.xml festgelegt...
Bislang habe ich endlos mit der Syntax rumgespielt, aber ohne Erfolg. Ebenso habe ich zigmal die Ordnerpfade gegengecheckt und meine Konfigurationsdateien durch XML-Validatoren gejagt, auch ohne Erfolg.

Ich wäre wirklich äusserst dankbar, wenn mir jemand einen Hinweis in die richtige Richtung geben könnte, weil momentan bin ich soweit, dass mir beim blossen Gedanken an Struts der Mund schäumt.

Der nächste logische Schritt hiernach sollte eigentlich die Formularauswertung werden, aber bei der "Einfachheit & Unkompliziertheit" von Struts packt mich jetzt schon das kalte Grauen :?
 

bronks

Top Contributor
Wenn Du Deine Nerven schonen willst, dann hol Dir NetBeans5 und mach das StrutsTut von der Netbeansseite. Sobald der AhaEffekt eingetreten ist geht dann alles andere wie von alleine ... :D
 

mlange8801

Aktives Mitglied
Vielleicht das <load-on-startup>1</load-on-startup>
noch in die web.xml einfügen.
Code:
<?xml version="1.0" encoding="ISO-8859-1"?> 

<!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd"> 

<web-app> 

    <display-name>Struts Test</display-name> 
    <description> 
      Struts Test 
    </description> 


    <context-param> 
      <param-name>webmaster</param-name> 
      <param-value>myaddress@mycompany.com</param-value> 
      <description> 
        The EMAIL address of the administrator to whom questions 
        and comments about this application should be addressed. 
      </description> 
    </context-param> 
    
  <servlet> 
    <servlet-name>action</servlet-name> 
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
    <init-param> 
         <param-name>config</param-name> 
         <param-value>/WEB-INF/struts-config.xml</param-value> 
    </init-param> 

<load-on-startup>1</load-on-startup>

  </servlet> 
  
  <servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
  </servlet-mapping> 


</web-app>
 
G

Guest

Gast
Das <load-on-startup>-Tag ändert erstmal nix am Laufzeitverhalten. Es kommen immer noch dieselben Fehlermeldungen.
Allerdings hab ich in der Log-Datei vom Tomcat jetzt immer 2 neue Fehlermeldungen beim Hochfahren:
Code:
SCHWERWIEGEND: StandardWrapper.Throwable
java.lang.NullPointerException
	at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
...
...

und

Code:
SCHWERWIEGEND: Servlet /inhouse threw load() exception
java.lang.NullPointerException
	at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
...
...

Scheint auf mich, wie eine Exception beim Laden, aber wovon? Klassen? Konfigurationsdateien? Ich hatte wie gesagt alle Ordnerpfade eigentlich schon unter die Lupe genommen...


@bronks
Einerseits setzt der betreffende Betriieb kein NetBeans ein, und ich gewöhn mich nur ungern an Sachen, die ich in der Praxis nicht benutzen kann, andererseits beschreibt der verlinkte Struts-Artikel auf deren Seite den Teil mit den ActionForwards haargenau so, wie auf allen anderen Seiten, die ich bisher dazu gesehen habe :(
 

mlange8801

Aktives Mitglied
SCHWERWIEGEND: Servlet /inhouse threw load() exception
java.lang.NullPointerException
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
...
...

Hört sich an, als würde er deine struts-config.xml nicht finden.
Die liegt in WEB-INF/struts-config.xml wo auch deine web.xml liegt?

Prinzipiell sollte der gepostete Code aber funktionieren.
 

Molloy

Mitglied
struts-config.xml und web.xml liegen beide im Verzeichnis:

C:\Tomcat5\webapps\inhouse\WEB-INF

soweit ich das sehe *sollte* das in der Konstellation auhc richtig sein, aber Tomcat meldet mir immer noch was anderes.
 

Molloy

Mitglied
Kleines Update.
man darf mich als geläutert betrachten :oops:

Durch die Fehlermeldung verunsichert habe ich mal probehalber den Eintrag in der web.xml folgendermassen abgeändert:
Code:
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param> 
   		<param-name>config</param-name> 
   		<param-value>/struts-config.xml</param-value> 
	 </init-param>
     <load-on-startup>1</load-on-startup>
  </servlet>
Die Fehlermeldungen in den Logdateien bleiben jetzt aus, also geh ich davon aus, dass ich jetzt den richtigen Pfad für die struts-config.xml erwischt hab.
Die Fehlermeldungen bleiben leider.... aber immerhin haben sie sich teilweise verändert.
Wenn ich die minitest.jsp aufrufe bleibts bei "Cannot find global ActionForward for name falsch" .
Wenn ich jetzt WrongLogin.do aufrufe kommt aber ein "javax.servlet.ServletException: Servlet.init() for servlet action threw exception" , womit ich leider nicht viel mehr anfangen kann :/
 

bronks

Top Contributor
Anonymous hat gesagt.:
... Einerseits setzt der betreffende Betriieb kein NetBeans ein, und ich gewöhn mich nur ungern an Sachen, die ich in der Praxis nicht benutzen kann, andererseits beschreibt der verlinkte Struts-Artikel auf deren Seite den Teil mit den ActionForwards haargenau so, wie auf allen anderen Seiten, die ich bisher dazu gesehen habe :(
Mit dem Netbeans Tut hättest Du sofort ein funktionierendes Ergebnis, mit dem Du herumexperimentieren kannst. Netbeans wäre Dein Freund und Assistent, der Dir einmal zeigt, wie das ganze zum Schluß auszusehen hat. Evtl. wäre es dann einfacher den Fehler in Deiner jetzigen Baustelle zu finden.
 

KSG9|sebastian

Top Contributor
struts ist case-sensitive, wenn mich net alles täuscht :)

D.h.: Wenn dein ForwarD "Falsch" heist, du aber in ein Forward namens "falsch" aufrufst, dann wird er nicht das gewünschte Ergebniss bringen :)

Was mir noch aufgefallen ist:

Wenn du Fehlermeldungen ausgeben willst, dann benutz das ActionErrors-Objekt und pack nicht irgendwelche Strings in den request.
Zu ActionErrors findest du genügend Infos online..z.B. www.laliluna.de
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
clemson [Struts] Parameter an ActionForward anhängen Allgemeines EE 3
S Struts 2 datetimepicker Allgemeines EE 3
W Struts Tutorial für EE Noobs? Allgemeines EE 2
N Struts vs JSF ? Allgemeines EE 7
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
Lex Property per html:link schreiben in struts Allgemeines EE 2
Shihan Line Breaks in <br /> umwandeln (Struts) Allgemeines EE 7
S Struts: zwei JSP's nutzen eine Action Allgemeines EE 5
G Struts: ActionMessage value in JSP anzeigen Allgemeines EE 2
S Problem mit Struts und tiles Allgemeines EE 4
S Struts und Session Allgemeines EE 2
K Struts - FormBean mit 2 Listen - Anzeigen und Speichern Allgemeines EE 2
S Probleme mit struts - ActionServlet Allgemeines EE 6
C Struts in iFrame Allgemeines EE 2
Z Struts: Formularfelder initialisieren Allgemeines EE 3
S Struts: Wert in einem iterierten Drop-Down Menü selektieren Allgemeines EE 7
T Struts 2 Allgemeines EE 6
R Struts-Action in JSP abfragen? Allgemeines EE 2
J struts: Bild als submit-button Allgemeines EE 2
J Internationalization mit Struts Allgemeines EE 2
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
velaluka Struts- falsches Character-Encoding? Allgemeines EE 3
M URL Darstl. und Struts Allgemeines EE 2
G Struts beans Allgemeines EE 7
D Struts + Table Allgemeines EE 6
L Struts - Action auslösen bei Browser Back Allgemeines EE 2
N Struts - Problem mit <html:link> Action Allgemeines EE 3
netspy Struts, Spring oder ... ? Allgemeines EE 5
S Struts - Direktaufruf eines URL verhindern Allgemeines EE 11
1 Frage zu Struts und findForward Allgemeines EE 4
N Struts Jboss und Filter Allgemeines EE 2
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
T Struts und Objekte in Comboboxen Allgemeines EE 4
J Probleme mit Struts Allgemeines EE 3
K STRUTS The server encountered an internal error Allgemeines EE 5
F struts logic:iterate Allgemeines EE 5
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
G struts-config.xml Allgemeines EE 3
H Ich bin sehr verwirrt - struts, jsp, jsf . ? Allgemeines EE 53
P Testen von Struts-Anwendung Allgemeines EE 7
P Struts Form Bean vs. Session Variable Allgemeines EE 6
A Tomcat undeploy unter Windows klappt nicht wegen struts.jar Allgemeines EE 2
B Struts Problem: Array in JSP ausgeben (logic:iterate) Allgemeines EE 12
M Struts Deployment Allgemeines EE 3
R Mehrsprachige Seite mit Struts & Co. ? Allgemeines EE 5
S mehrere Message Resources in Struts ansprechen Allgemeines EE 7
G Values aus DB in Input-Feldern anzeigen (Struts) Allgemeines EE 2
G Exception creating bean of class . (Struts) Allgemeines EE 8
B Verwendung von DynActionForm (Struts) Allgemeines EE 10
K dynamischer Zugriff auf .properties (Struts) Allgemeines EE 2
K Struts html:messages tag Allgemeines EE 2
M Struts File Upload problem Allgemeines EE 6
G Validierung mittels Struts. Benötige Hilfe. Allgemeines EE 7
J Buchempfehlung: Servlets, JSP, Struts, JSTL Allgemeines EE 3
P struts "beliebige motive in der datenbank finden" Allgemeines EE 6
P Struts und Frames Allgemeines EE 13
L jfreechart und Struts / JSPs Allgemeines EE 3
P struts Hibernate MySQL Select Statement Allgemeines EE 24
P keine verbindung vom struts framework zu mysql Allgemeines EE 2
R Vernünftige Session-Verwaltung mit Struts Allgemeines EE 4
P Struts Anwendung- FormBean Tabelle mit input type=text Allgemeines EE 2
G Probleme mit Validierung (Struts, validation.xml) Allgemeines EE 4
clemson gesplittete struts-config mittels ant zusammenbauen Allgemeines EE 2
J Struts Textfeld Allgemeines EE 10
M Struts shale Allgemeines EE 7
M Struts - jsp site - werte formatieren Allgemeines EE 6
clemson mehrere Mail Attachments - JSP Struts Allgemeines EE 7
T JSTL + Struts (inkl.Hibernate) -> forEach Problem Allgemeines EE 6
R Struts FormBean Allgemeines EE 4
S Struts 1.1 download einer Datei Allgemeines EE 4
R Use bean in scriptlet in struts Allgemeines EE 4
S reagieren auf select events in jsp-struts seiten Allgemeines EE 5
P Struts - Text formatieren Allgemeines EE 6
C Grafische Komponenten unter Struts jsp (Liste) Allgemeines EE 4
P Struts - Abarbeitung Allgemeines EE 3
P J2EE Struts - Database connection failed - Hilfe?:( Allgemeines EE 6
P J2EE Struts Allgemeines EE 2
R struts 1.0.2 Checkbox-Property bleibt immer false Allgemeines EE 3
TRunKX Werteübergabe von einer *.jsp in eine *.java ohne struts Allgemeines EE 4
clemson [Struts] Validierung server-seitig bringt StackOverflowError Allgemeines EE 5
clemson [Struts] HTML-Checkbox Tag ID Allgemeines EE 2
clemson [Struts] Einer Action Parameter übergeben Allgemeines EE 2
clemson [Struts] Innerhalb Action auf form zugreifen Allgemeines EE 4
G In einer JSP auf Struts-Elemente "reagieren" Allgemeines EE 4
clemson [Struts] struts-config.xml parsen Allgemeines EE 2
clemson [Struts] TilesRequestProcessor - processRoles Allgemeines EE 14
F Struts Allgemeines EE 9
G Struts-Write Anweisungen in Hyperlink einbauen Allgemeines EE 3
G Struts-Form: in validate- oder reset-Methode umleiten. Allgemeines EE 3
G Listenfeld mit Struts und Beans realisieren Allgemeines EE 4
L Anfänger: suche Tutorials zu Struts/EJB Allgemeines EE 6
G Struts - dynamisches FormBean Allgemeines EE 3
R struts und Mapped Properties Allgemeines EE 2
A Javadocs zu struts Allgemeines EE 5
A Kolloquium J2EE / Struts Allgemeines EE 16
A Expression Language in Struts? Allgemeines EE 6
A Form Validierung mit Struts? Allgemeines EE 2
A struts: html:form-tag das Attribut "name" ersetzen Allgemeines EE 7
B struts - beginnerproblem Allgemeines EE 3
B Struts DBCP Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben