# JSP STRUCT Elemente in HTML Tabelle



## Swie91 (8. Okt 2012)

Hallo User,
ich hoffe ihr könnt mir weiter helfen. ich schreibe momentan zu meiner Java Web Applikation eine Benutzerverwaltung, daher habe ich eine Tabelle mit den Benutzer, ob er Aktiviert ist und einen Button um diesen zu bearbeiten/löschen.


```
<table border="2">
	<thead>
		<tr>
			<th id="data" class="queuemanager">UserID</th>
			<th id="data" class="queue">Aktive</th>
			<th id="data" class="queue">Bearbeiten</th>
		</tr>
	</thead>
	<tbody>
		<tr>
		<s:form action="register" method="post" onsubmit="showLoading()">
			<td><s:textfield name="EditUSERID"  value="%{EditUSERID}" label="UserID" /></td>
			<td><s:checkbox label="Aktiv" name="EditAKTIV" value="aBoolean" fieldValue="true"/></td>
			<td><s:submit value="Register" property="Register" /></td>
		</s:form>
		</tr>
		<s:iterator value="UserList" status="rowstatus">
			<s:form action="EditUser" method="post" onsubmit="showLoading()">
			<s:hidden name="EditUSERID" value="%{userId}") />
			<tr <s:if test="#rowstatus.odd">class="hinterlegt_hell"</s:if><s:else>class="hinterlegt_dunkel"</s:else>>
				<td id="data" class="left"><s:property value="%{userId}"/></td>
				<td id="data" class="left"><s:property value="%{aktiv}"/></td>
				<td id="data" class="left"><s:submit value="Edit" property="Edit" /></td>
			</tr>
			</s:form>
	</s:iterator>
	</tbody>
</table>
```

Jedoch wird dies nicht wie gewünscht dargestellt, siehe Abbildung:






Ich danke euch schonmal für eure Hilfe.


----------



## SlaterB (8. Okt 2012)

mächtig seltsamer Fehler, gleich gesehen und lieber für andere offen gelassen, nun wage ich mich mit einfachen Mittel hinein:
wie sieht das erzeugte HTML dieser komischen verbuggten Ansicht aus?

der einzige Strohhalm, den ich allgemein als schöne Erklärung habe, wäre einmal mehr Verwendung einer falschen Version,
ändere einen Buchstaben, statt Bearbeiten z.B. Wearbeiten,
erscheint die komische Seite mit dem neuen Wort? dann wäre es tatsächlich trotz augenscheinlich gutem Code so,
wenn aber immer noch Bearbeiten erscheint, dann offensichtlich die neueste Änderung nicht berücksichtigt, vorherige dann vielleicht auch nicht,
Cache oder ähnlich komisches, Webserver neu starten, URL der Seite testweise ändern?

falls es beim Fehler bleibt, dann zumindest zur Fehlersuche:
fange mit einer korrekten reinen HTML-Tabelle an
HTML Tables

baue vielleicht noch mit reinen HTML-Tags ein form zusammen

```
<table border="2">
    <thead>
        <tr>
            <th id="data" class="queuemanager">UserID</th>
            <th id="data" class="queue">Aktive</th>
            <th id="data" class="queue">Bearbeiten</th>
        </tr>
    </thead>
    <tbody>
        <tr>
        <form ... > [gekürzt, sonst kann ich kein Posting abschicken ;) ]
            <td><input name="EditUSERID"  value="%{EditUSERID}" label="UserID" /></td>
            <td><select name="top5" size="3">
			  <option>Heino</option>
			  <option>Michael Jackson</option>
			  <option>Tom Waits</option>
			  <option>Nina Hagen</option>
			  <option>Marianne Rosenberg</option>
			</select></td>
            <td><input type="submit" value=" Absenden "></td>
        </form>
        </tr>
    </tbody>
</table>
```
hatte ich schon versucht 

kann man doch sicherlich auch in deine Webserver-gesteuerte wasauchimmer-Seite so hineinsetzen,
Anzeige ok? dann immer weiter verändern, statt form-HTML s:form einsetzen, dann die Felder der Reihe nach tauschen

wenn die erste Zeile ok bleibt, dann die zweite langsam aufbauen,
ab welchem Punkt geht es kaputt?


----------



## Swie91 (9. Okt 2012)

Das ist der Seiten Quelltext der mir angezeigt wird, also der sagt eine Form ist immer eine Eigene Tabelle... Ich verzweifel hier noch.


```
<table border="2">
	<thead>
		<tr>
			<th id="data" class="queuemanager">UserID</th>
			<th id="data" class="queue">Aktive</th>
			<th id="data" class="queue">Bearbeiten</th>
		</tr>
	</thead>
	<tbody>
		<tr>
									        
<form id="register" name="register" onsubmit="showLoading()" action="/EAI-Monitoring/register.action" method="post">
<table class="wwFormTable">
										<td><tr>
    <td class="tdLabel"></td>
    <td
><input type="text" name="EditUSERID" value="" id="register_EditUSERID"/></td>
</tr>
</td>
										<td><tr>
	<td valign="top" align="right">
    </td>
    <td valign="top" align="left">

<input type="checkbox" name="EditAKTIV" value="true" id="register_EditAKTIV"/>
<input type="hidden" id="__checkbox_register_EditAKTIV" name="__checkbox_EditAKTIV" value="true" />  <label for="register_EditAKTIV" class="checkboxLabel">Aktiv</label> </td>
</tr>

</td>
										<td><tr>
    <td colspan="2"><div align="right"><input type="submit" id="register_0" value="Register" property="Register"/>
</div></td>
</tr>
</td>
</table></form>




		</tr>
									
									        
<form id="EditUser" name="EditUser" onsubmit="showLoading()" action="/EAI-Monitoring/EditUser.action" method="post">
<table class="wwFormTable">
										<input type="hidden" name="EditUSERID" value="HAHAHA" id="EditUser_EditUSERID"/>
										<tr class="hinterlegt_hell">
											<td id="data" class="left">HAHAHA</td>
											<td id="data" class="left">false</td>
											<td id="data" class="left"><tr>
    <td colspan="2"><div align="right"><input type="submit" id="EditUser_0" value="Edit" property="Edit"/>
</div></td>
</tr>
</td>
										</tr>
									</table></form>


<form id="EditUser" name="EditUser" onsubmit="showLoading()" action="/EAI-Monitoring/EditUser.action" method="post">
<table class="wwFormTable">
										<input type="hidden" name="EditUSERID" value="TESTUS" id="EditUser_EditUSERID"/>
										<tr class="hinterlegt_dunkel">
											<td id="data" class="left">TESTUS</td>
											<td id="data" class="left">true</td>
											<td id="data" class="left"><tr>
    <td colspan="2"><div align="right"><input type="submit" id="EditUser_0" value="Edit" property="Edit"/>
</div></td>
</tr>
</td>
										</tr>
									</table></form>




									
	</tbody>
</table>
```


----------



## SlaterB (9. Okt 2012)

mit wwFormTable, offensichlicht automatisch erstellt, kommt ein guter Suchbegriff,
da habe ich ja für Fortschritt geschaffen 

mit Suche '<table class="wwFormTable">' kommt man zu
Struts2 table annoyance  JT Dev
und anderen Seiten,

ob wirklich mit Lösungen ist nicht gesagt, aber mehr kann man hier kaum schaffen als solche Spezialartikel

----

soll STRUCT im Titel mit Struts/ Struts2 zu tun haben?


----------



## Fant (9. Okt 2012)

Zum "warum" und wie man es alternativ lösen könnte, kannst du auch mal hier schauen

Why do the form tags put table tags around controls
Themes and Templates


----------



## Swie91 (9. Okt 2012)

Jop war ein Tippfehler von mir, weil ich nur Gast bin konnte ich es nicht mehr ändern.

Habe gerade Probleme mit dem Testserver, sobald diese behoben sind werde ich es mal testen und ein statement geben.


----------



## SlaterB (9. Okt 2012)

ach ja, ich kann ja gar nicht den Titel ändern wenn ich nicht auch dort form mit JavaScript oder so entferne,
sonst hätte ich 'Hilfe!' schon längst enfernt  , bitte auf solche Füllwörter verzichten, bleibt mir als Ermahnung


----------



## Swie91 (9. Okt 2012)

tut mir leid war keine absicht... hätte es auch schon geändert aber wie gesagt geht leider nicht.

Musste jetzt jetzt auf eine unschöne weiße machen:

```
<table border="2">
	<thead>
		<tr>
			<th id="data" class="queuemanager">UserID</th>
			<th id="data" class="queue">Aktive</th>
			<th id="data" class="queue">Bearbeiten</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
			<s:form action="register" method="post" onsubmit="showLoading()">
			<s:textfield name="EditUSERID"  value="%{EditUSERID}" /></table></td>
			<td><table><s:checkbox label="Aktive" name="EditAKTIV" value="aBoolean" fieldValue="true"/></table></td>
			<td><table><s:submit value="Register" property="Register" /></s:form></td>
		</tr>
	<s:iterator value="UserList" status="rowstatus">
		<tr <s:if test="#rowstatus.odd">class="hinterlegt_hell"</s:if><s:else>class="hinterlegt_dunkel"</s:else>>
			<td id="data" class="left"><s:form action="EditUser" method="post" onsubmit="showLoading()"><s:hidden name="EditUSERID" value="%{userId}") /><tr><td><s:property value="%{userId}"/></td></tr></table></td>
			<td id="data" class="left"><table><td><tr><s:property value="%{aktiv}"/></td></tr></table></td>
			<td id="data" class="left"><table><s:submit value="Edit" property="Edit" /></s:form></td>
		</tr>					
	</s:iterator>
	</tbody>
</table>
```

Ich werde trotzdem ausschau nach einer anderen Lösung suchen, jedoch muss ich schnell weiter kommen um etwas vorzeigen zu können.

Ich danke euch trotzdem für eure Hilfe.


----------



## mfx (22. Okt 2012)

~


Mir fiele beim Betrachten des Codes ein, <form> um <table> zu legen und
nicht irgendwo mittenrein zwischen <tr> und <td>.

Wenn mehrere Formulare benötigt werden, kann man die natürlich auch in die Tabellenzellen (<td>) packen. Die Hidden-Felder gehören wiederum in die (jeweilige) <form> und damit ebenfalls in die Tabellenzellen.


----------

