struts2:s:复选框与s:复选框不在同一行
题
这是.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>
渲染时,复选框将占据“名称”下方的整行,居中。 这是生成的html,它应该是一行:
<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>
是我还是支柱? TIA。
解决方案
添加属性theme = <!> quot; simple <!> quot; 喜欢
其他提示
Struts2将s:复选框呈现为表格单元格本身。原因是struts2使用模板系统进行标记渲染。默认值为(在struts-default.properties中定义)
标准UI主题
struts.ui.theme = XHTML
struts.ui.templateDir =模板
struts.ui.templateSuffix = FTL
您需要进行此更改 - struts.ui.theme:simple
可以通过添加
来完成constant name = <!> quot; struts.ui.theme <!> quot; <!>值= QUOT; <!>简单QUOT; / GT <!>;标签
<!> struts.xml <!>中的。这就足够了。
您需要查看用于表单标记呈现的主题。 Struts2使用模板系统(在struts.properties中定义)。看起来您默认使用xhtml模板,该模板用于输出两列表。您可以在应用程序中默认为simple,也可以在标记级别(或其他五个层次结构)上覆盖它。
以下是一些更多信息: http:// struts。 apache.org/2.0.14/docs/themes-and-templates.html
定义复选框时,请使用<!> quot; theme = simple <!> quot;属性如下所示:
<!> quot; simple <!> quot;主题会将您的复选框放在与您的其他字段相同的行中。欢呼声。
问题在于,使用默认的struts主题,s:checkbox
是一个表格单元格本身。
(Struts 2将其呈现为表格单元格)
在你的jsp中,你再次将它包含在<td>
标签中(不需要)
尝试删除复选框标记周围的<=>标记。