我在我的应用程序中使用 struts2。在 struts2 中,默认情况下将表单布局在一个两列表格中,每个输入字段的标签在左列,输入字段在右列(标签#输入字段#)。但就我而言,我需要连续四列(标签#输入字段#标签#输入字段#)。有没有办法做到这一点,而不改变我的主题(xhtml)?
我不希望对主题进行任何更改,有没有办法欺骗每个 struts 标签的自动渲染 #tr#,#td# 标签。
如果您需要连续四列,那么您需要完全控制<s>
标签或只是跳过<s>
标签并拥有自己的表单:)
要自己对齐所有控件,我建议您使用 css_xhtml 主题而不是默认的 xhtml。
通过这样做,假设您的表单是这样的:
<s:form action="add" method="post">
<s:textfield name="contact.firstName" label="Firstname"/>
<s:textfield name="contact.lastName" label="Lastname"/>
</s:form>
它将呈现为:
<form id="add" name="add" action="add" method="post">
<div id="wwgrp_add_contact_firstName" class="wwgrp">
<div id="wwlbl_add_contact_firstName" class="wwlbl">
<label for="add_contact_firstName" class="label">Firstname:</label>
</div>
<br />
<div id="wwctrl_add_contact_firstName" class="wwctrl">
<input type="text" name="contact.firstName" value="" id="add_contact_firstName"/>
</div>
</div>
<div id="wwgrp_add_contact_lastName" class="wwgrp">
<div id="wwlbl_add_contact_lastName" class="wwlbl">
<label for="add_contact_lastName" class="label">Lastname:</label>
</div>
<br />
<div id="wwctrl_add_contact_lastName" class="wwctrl">
<input type="text" name="contact.lastName" value="" id="add_contact_lastName"/>
</div>
</div>
</form>
您现在所要做的就是覆盖样式并相应地创建您的表单,为它们设置样式:)