struts2: s:checkbox 不与 s:checkbox 位于同一行
下面是 .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>
是我还是 struts? TIA。
Here's the .jsp code:
<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>
When rendered, the checkbox would occupy a whole row below the 'names', centered.
Here's the generated html for what's supposed to be a single row:
<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>
Is it me or struts?
TIA.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
添加属性 theme="simple"
喜欢
Add the property theme="simple"
like
Struts2 将 s:checkbox 本身呈现为表格单元格。原因是 struts2 使用模板系统进行标记呈现。 默认是(如 struts-default.properties 中所定义)
标准 UI 主题
struts.ui.theme=xhtml
struts.ui.templateDir=template
struts.ui.templateSuffix=ftl
您需要进行此更改 -- struts.ui.theme :simple
可以通过添加
常量 name="struts.ui.theme" value="simple" /> 标签。这就足够了。
来完成 “struts.xml”中的
Struts2 renders s:checkbox as a table cell itself.The reason is tht struts2 uses a template system for tag rendering. The default is (as defined in struts-default.properties)
Standard UI theme
struts.ui.theme=xhtml
struts.ui.templateDir=template
struts.ui.templateSuffix=ftl
You need to make this change -- struts.ui.theme:simple
It can be done by adding
constant name="struts.ui.theme" value="simple" /> tag
in the "struts.xml".This wil suffice.
您需要研究用于表单标记渲染的主题。 Struts2 使用模板系统(在 struts.properties 中定义)。 看来您默认使用 xhtml 模板,该模板旨在输出两列表。 您可以在应用程序中默认为简单,也可以在标签级别(或之间的其他五个层次结构)覆盖它。
这里有一些更多信息: http://struts.apache.org /2.0.14/docs/themes-and-templates.html
You need to look into the theme that is being used for your form tag rendering. Struts2 uses a template system (defined in struts.properties). It looks like you are using the xhtml template by default which is designed to output a two-column table. You can default to simple in the app or override it on the tag-level (or five other hierarchies in between).
Here's some more info: http://struts.apache.org/2.0.14/docs/themes-and-templates.html
定义复选框时,请使用“theme = simple”属性,如下所示:
“简单”主题会将您的复选框与其他字段放在同一行。 干杯。
When defining your checkbox, use "theme = simple" attribute as shown in the following:
The "simple" theme will put your checkbox in the same row as the other fields of your. Cheers.
问题在于,对于默认的 struts 主题,
s:checkbox
本身就是一个表格单元格。(Struts 2 将其呈现为表格单元格)
在您的 jsp 中,再次将其包含在
标记中(这不是必需的)
尝试删除
复选框标签周围的标签。
The problem is that with the default struts theme,
s:checkbox
is a table cell itself.(Struts 2 renders it as a table cell)
In your jsp you include it in
<td>
tags again (which is not needed)Try removing the
<td>
tags around the checkbox tag.