# Struts - Problem mit <html:link> Action



## Nanni (8. Jan 2007)

Hallo Java Männer und Frauen, 
eine komische Sache bereit mir gerade Kopfzerbrechen und ich weiß nicht warum . 

Ich habe eine jsp View Seite in der ich folgendermaßen einen <html:link> habe:


```
<html:link action="/Entry.do?action=neu"			  
	paramName="currentmember" 
	paramProperty="memberid" 
	paramId="memberid">							  	
</html:link>
```

Die korrespondierende Actionklasse, die aufgerufen wird, wenn der Nutzer auf einen Link klickt sieht ungefähr so aus:


```
public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {		

               //...
                String action = request.getParameter("action");		
               //..
		
		if (this.isCancelled(request)) {
                             //dummy mapping return
                             //	return ...
		}				
	    		
		else if (action == null) {
                           //return ...
		}

		else if (action.equals("neu")) {
                           System.out.println("action == neu");
                           


		}		
        
		return mapping.findForward("Uebersicht");

	}
```

Wenn ich nun die Anwendung im Browser teste, wird die Action manchmal aber nicht immer 2 mal aufgerufen
Konsole:
action == neu
action == neu

Ich weiß absolut nicht warum, weiß da jemand spontan einen Rat ?


----------



## Nanni (8. Jan 2007)

Hallo nochmal, 
Nun hab ich festgestellt dass der Fehler wohl in dem logic:iterate Tag liegt. Ich iteriere über eine Collection und für jedes Element soll eine <html:link erzeugt werden. So sieht mein derzeitiger Code aus, aber dies führt eben dazu dass die mit einem Link verbunde Action manchmal doppelt aufgerufen wird, warum , keine Ahnung. Wer kann mir helfen, wie macht man sowas richtig ??


```
<logic:iterate 
              id="currentmember"                          
              name="members"            
              type="de.Member"
              indexId="i"
           >           		
		     <tr>
				..
			        
				<td width="30" valign="top">
 			           <bean write = "members"../>
				  <html:link action="/Entry.do?action=neu"          
                                         paramName="currentmember"
                                         paramProperty="memberid"
                                         paramId="memberid">                          
                                 </html:link>   				  			  
                              </td>
	            </tr>
</logic:iterate>
```


----------



## Nanni (8. Jan 2007)

Sorry ich muss mich noch ein drittes mal melden, ich hab nun festgestellt, 
dass die Verwendung eines image links innerhalb des <html:link> Tags dafür verwantwortlich ist, dass Methoden doppelt aufgerufen werden.

	  <html:link action.....>
            <html:image src="pics/add.png">
         </html:link>
Verwende ich stattdessen einen normalen Textlink funktioniert das. Warum ? Wie mache ich das richtig?
Danke.


----------



## clemson (8. Jan 2007)

willst du wirklich ein image input feld oder doch lieber ein bild? denn dann kann ich dir <html:img ... /> empfehlen.


ich kann mir zwar nicht vorstellen dass es daran liegt, aber ein versuch isses wert.


----------

