struts2: s: checkbox non va nella stessa riga con s: checkbox
Domanda
Ecco il codice .jsp:
<table>
<s:iterator value="allAgents">
<tr>
<td><s:property value="firstName" /></td>
<td><s:property value="middleName" /></td>
<td><s:property value="lastName" /></td>
<td><s:checkbox name="ss"/></td>
</tr>
</s:iterator>
</table>
Al rendering, la casella di controllo occuperebbe un'intera riga sotto i "nomi", centrata. Ecco il codice HTML generato per quella che dovrebbe essere una singola riga:
<tr>
<td>first</td>
<td>middle</td>
<td>last</td>
<td>
<tr>
<td valign="top" align="right"></td>
<td valign="top" align="left"><input type="checkbox" name="ss"
value="true" id="agent_ss" /> <input type="hidden"
name="__checkbox_ss" value="true" /></td>
</tr>
</td>
</tr>
Sono io o puntoni? TIA.
Soluzione
Aggiungi il tema della proprietà = " semplice " come
Altri suggerimenti
Struts2 rende s: casella di controllo come cella di tabella stessa. Il motivo è che struts2 utilizza un sistema modello per il rendering dei tag. L'impostazione predefinita è (come definito in struts-default.properties)
Tema dell'interfaccia utente standard
struts.ui.theme = xhtml
struts.ui.templateDir = template
struts.ui.templateSuffix = FTL
Devi apportare questa modifica - struts.ui.theme: simple
Può essere fatto aggiungendo
nome costante = " struts.ui.theme " & = Valore quot; & Semplice quot; / Gt &; tag
nel " struts.xml ". Questo sarà sufficiente.
È necessario esaminare il tema utilizzato per il rendering del tag del modulo. Struts2 utilizza un sistema di template (definito in struts.properties). Sembra che tu stia utilizzando il modello xhtml per impostazione predefinita, progettato per generare una tabella a due colonne. Puoi impostare semplicemente semplice nell'app o sovrascriverla a livello di tag (o tra altre cinque gerarchie in mezzo).
Altre informazioni: http: // struts. apache.org/2.0.14/docs/themes-and-templates.html
Quando si definisce la casella di controllo, utilizzare " theme = simple " attributo come mostrato di seguito:
Il " semplice " Il tema metterà la tua casella nella stessa riga degli altri campi del tuo. Cin cin.
Il problema è che con il tema predefinito struts s:checkbox
è una cella di tabella stessa.
(Struts 2 lo rende come una cella di tabella)
Nel tuo jsp lo includi di nuovo nei <td>
tag (che non è necessario)
Prova a rimuovere i <=> tag attorno al tag della casella di controllo.