# struts-config.xml



## gasiko (3. Okt 2006)

Guten Tag!

Verstehe nicht wie das unten in Struts nacher abgearbeitet wird. 

Was ist die erste Seite, die zualler erst aufgerufen wird?
 input="dynValLogon" oder index.html oder ????

Werden die actions immer der Reihe nach abgearbeitet oder gleichzeitig?

Wovon hängt der Aufruf der Seite "login.create" oder profile.edit ab?

Grüße
gasiko





```
<form-beans>

    <form-bean 	name="dynValLogonForm"
    			type="org.apache.struts.validator.DynaValidatorForm"
    			dynamic="true">
      	<form-property name="userId" type="java.lang.String"/>
      	<form-property name="password" type="java.lang.String"/>
    </form-bean>
    
    <form-bean 	name="createLoginForm"
    			type="org.apache.struts.validator.DynaValidatorForm"
    			dynamic="true">
      	<form-property name="userId" type="java.lang.String"/>
      	<form-property name="password" type="java.lang.String"/>
      	<form-property name="password2" type="java.lang.String"/>      	
    </form-bean>
```



```
<global-forwards>
  
    <forward name="main" path="/index.html"/>  
    <forward name="dynValLogon" path="/dynvallogon.jsp"/>  
    
    <forward name="logon.failure" path="/dynvallogon.jsp"/>    
    <forward name="logon.mandatory" path="/logon_mandatory.jsp"/>
 </global-forwards>
```



```
<action-mappings>

    <action	path="/dynValLogon"
           	type="de.deicon.opensource.webapp.actions.LogonAction"
            name="dynValLogonForm"
            parameter="method"            
            validate="true"
            scope="session"
            input="dynValLogon">
    </action> 
    
    <action	path="/createLogin"
           	type="de.deicon.opensource.webapp.actions.LogonAction"
            parameter="method"
            name="createLoginForm"           	
            scope="request"            
            validate="true"
            input="login.create">
    </action>    
    

    <action	path="/prepareprofile"
           	type="de.deicon.opensource.webapp.actions.ProfileAction"
            name="profileForm"
            parameter="method"
            validate="false"
            scope="session">
    </action> 

 <action	path="/updateprofile"
           	type="de.deicon.opensource.webapp.actions.ProfileAction"
            name="profileForm"
            parameter="method"
            validate="true"
            scope="session"
            input="profile.edit">
    </action> 
    
    <action	path="/getsubscriptions"
           	type="de.deicon.opensource.webapp.actions.ProfileAction"
            name="subsForm"           	
            parameter="method"
            scope="session"            
            validate="false">
    </action>  
<action-mappings>
```


----------



## SlaterB (3. Okt 2006)

diese Datei sagt nix darüber aus, welche Seite jeder User als erster aufruft,
das kann niemand beantworten,

mit einem Link/ Bookmark kommt man auf jede Unterseite,
bei der Eingabe einer Domain aber sicherlich zuerstmal auf die index.html, ganz normal


> Werden die actions immer der Reihe nach abgearbeitet oder gleichzeitig?

der Reihe nach, 

wieso auch gleichzeitig, es kommt immer nur eine in Frage?!,
wenn man einen Request an den Server stellt, wird dieser auf genau eine Action abgebildet,

> Wovon hängt der Aufruf der Seite "login.create" oder profile.edit ab? 

der hängt davon ab, dass jemand dahin will,
z.B. könnte in jeder Action irgendwo stehen 'gehe zu login.create',

'login.create' ist auch als Input einer Action aufgeführt,
bei einem Fehler der Form-Validierung wird dann dahin gesprungen


vielleicht hilft dir dieser Thread hier weiter, klingt recht ähnlich
http://spotlight.de/zforen/jav/m/jav-1159119442-4346.html

Vorsicht: Teile der Postings sind nicht zu sehen, da als html-Code interpretiert, 
im Quellcode der Seite sieht man dann mehr


----------



## gasiko (3. Okt 2006)

SlaterB danke für die deine Erläterungen.
Bei der u.s. struts-config.xml Datei ist es leicht nachvollzuziehen, allerdings habe ich die Probleme
wenn mehr steht als das. 
Damit meine meine ich mehr form beans, mehr forwards (global forwards), mehr actions (<action-mappings>).
Verstehe das Zusammenspiel nicht mehr. 
Lauter *.jsp Seiten wann wird welche Seite aufgerufen?
Kannst du mir oder ein anderer den logischen und sequentiellen Ablauf von so einer Anwendung andhand
so einer komplexen struts-config.xml Datei anschaulich erklären.



```
<forward name="main" path="/index.html"/>  
    <forward name="dynValLogon" path="/dynvallogon.jsp"/>  
    
    <forward name="logon.failure" path="/dynvallogon.jsp"/>    
    <forward name="logon.mandatory" path="/logon_mandatory.jsp"/>      
    <forward name="logon.success" path="/index_personalized.jsp"/>
    <forward name="login.create" path="/createLogin.jsp"/>  
    <forward name="logoff" path="/dynValLogon.do?method=logoff"/>
```


```
Bsp:

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>

    <form-beans>
   
        <form-bean

            name="buchForm"

            type="buch.BuchForm"/>

    </form-beans>

    <global-exceptions>
      
    </global-exceptions>
    <global-forwards>
 
        <forward

            name="buchCreated"

            path="/BuchView.jsp"/>

    </global-forwards>
    <action-mappings>

        <action

            path="/createBuch"

            type="buch.BuchAction"

            name="buchForm"

            scope="request"

            input="/Buch.jsp"/>

    </action-mappings>

    <controller

       processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

   <message-resources parameter="resources.application"/>


  <plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" 
	                 value="/WEB-INF/tiles-defs.xml" />
    <set-property property="moduleAware" value="true" />
    <set-property property="definitions-parser-validate" value="true" />
  </plug-in>

  

  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property
        property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
  </plug-in>

</struts-config>
```


----------



## SlaterB (4. Okt 2006)

die struts-xml erklärt nur ein Drittel,
das zweite Drittel sind die JSPs/ XML: welche Formulare und Links zu welchen Actions enthalten sie,
das dritte Drittel sind die Actions: zu welchen JSPs verweisen sie bei welchen Bedingungen,
---------

ich kann aus der struts-xml nicht viel erkennen (steht das für sich oder gehört das erste Posting noch dazu?),
aber was soll schon groß los sein?

irgendeine index-Seite, darauf direkt ein Login-Formular oder ein Link zu einer Login-Seite,

ein solches Formular führt (wie jedes Formular) im Fehlerfall entweder zu einer Fehlerseite oder zurück zum Formular,
im Erfolgsfall zu einer Bestätigungsseite (evtl. mit einmaligen Anschlussoptionen) 
oder zu einer neuen Übersichsseite (z.B. Seite eines angemeldeten Users, index_personalized.jsp)

------

es gibt anscheinen Buch.jsp, auf der sich ein Buchformular befindet, wozu auch immer,
sendet man das Formular ab gehts zur BuchAction und anscheinend im Erfolgsfall zum forward 'buchCreated', 
also zur BuchView.jsp,

gut möglich, dass in der BuchAction geprüft wird, ob ein User eingeloggt ist,
und im Fehlerfall zu 'logon.mandatory' weitergeleitet wird, 

wie gesagt: am besten laufen lassen und ausprobieren, das ist viel einsichtiger als eine Offline-Analyse..


----------

