这是.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>标签中(不需要)

尝试删除复选框标记周围的<=>标记。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top