在使用了<s:doubleselect></s:doubleselect>的时候,你可能会发现最终在显示连个可以联动的下拉框的时候,两个下拉框不在一行显示,如果你想让他们可以在一行显示,你可以使用如下的方法:
方式一:自己写一个样式,不让这两个下拉列表去换行.我用的是类样式。
<span style="white-space:pre"> </span><style type="text/css">
.xxx br{display: none}
</style>
在这里我要特别说明一下
1.在你的<s:form>标签里有一个theme属性,它的默认值是xhtml。theme="xhtml"的话会额外生成<tr>,<td>标签,如果此时你虽然使用了如上的样式的话,但是这两个下拉框依然不会在同一行显示。 2.theme="simple"的话在显示的时候是不会换行的。
3.theme="css_xhtml"的话,会额外利用样式让你的表单元素进行换行,查看网页源代码你就会发现这三点的。
将你的<s:form>标签里的theme属性设置为css_xhtml或者simple再去写一个类似我在上放写过的样式就行了。
方式二:更改doubleselect的模板
具体步骤如下:
1.在项目的src目录下新建一个template.doubleselect包
2.把你之前下载好的struts的struts2-core-2.3.12.jar解压缩,
在\template\simple下找到doubleselect.ftl把它复制到template.doubleselect包下
3.打开doubleselect.ftl找到<br/>把<br/>删掉,然后在你的<s:doubleselect>中加一个属性theme=“doubleselect”就好了。
使用了方式二的话无论你指定theme的属性值为什么,都不会影响我们的两个联动下拉框。