Java 选择a<;s:复选框列表>;在struts2中垂直显示
*我需要我的复选框列表选项垂直显示,而不是默认的水平显示。我已在名称模板中的src文件夹中创建了一个文件夹,并使用名称垂直复选框创建了另一个文件夹,其中包含自定义复选框列表的修改.ftl文件。我无法显示自定义复选框 我在JSP中的代码是Java 选择a<;s:复选框列表>;在struts2中垂直显示,java,struts2,Java,Struts2,*我需要我的复选框列表选项垂直显示,而不是默认的水平显示。我已在名称模板中的src文件夹中创建了一个文件夹,并使用名称垂直复选框创建了另一个文件夹,其中包含自定义复选框列表的修改.ftl文件。我无法显示自定义复选框 我在JSP中的代码是 <s:checkboxlist theme="vertical-checkbox" label="Which of the following are states of India" name=
<s:checkboxlist theme="vertical-checkbox" label="Which of the following are states of India"
name="states"
list="#{'01':'January','02':'February','03':'March','04':'April',
'05':'May'}"
/>
请告诉我哪里出错。如果看不到修改后的.ftl文件,很难判断哪里出错,但一般的解决方案是:
- 将checkboxlist.ftl复制到新目录(例如,…/template)
- 在复制的文件中,在checkboxLabel类和迭代器之间添加一个分隔符:
<label ... class="checkboxLabel"> <br> </@s.iterator>
- 参考/包括新的…/template/checkboxlist.ftl以覆盖标准checkboxlist.ftl
如果我没记错的话,上面的内容也可以用CSS来完成,但我忘记了细节。通常struts2中的struts复选框列表水平排列。在大多数应用程序中,我们希望垂直(逐行)显示复选框。为了使其垂直对齐,我们必须执行以下操作
标记:
这将为您提供一个垂直复选框列表。唯一的区别是,这里您必须指定与您在项目的src文件夹的template目录中创建的目录相同的主题。我尝试了这里提供的答案,但它没有如我所希望的那样工作,我丢失了列表上的标签,其他格式也消失了。所以,我是通过css实现的:
<s:checkboxlist
name="myCheckboxList"
... />
选择器声明“在每个带有包含“myCheckboxList-”的for属性的标签之后”,内容声明“添加换行符(“\a”)并确保保留空白” 请访问此网站:
基本上,你只需要:
<#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
</@s.iterator>
添加以下内容(介于两者之间):
在这段代码中,“垂直”是css样式,我们将在strust2页面中使用它,是列表中两个复选框之间的分隔符
@Sam如果您不熟悉.ftl文件,Struts2会使用.ftl(Freemaker模板文件)来呈现表单。您可以看到一个覆盖默认@This is a ingenius解决方案的示例。工作得很好。只需在我的应用程序的css文件中插入3行。非常感谢。与其他发布的解决方案相比,此解决方案的代码更少,工作量更少。幻想曲!我成功地创建了自己的模板,并且可以按照我想要的方式更改checkboxlist.ftl。所以这个答案实际上是有效的。为了让我的自定义模板正常工作,我必须做的唯一一件事就是将checkboxlist.ftl中引用的文件也包括在模板目录中,例如:
<#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}
</@s.iterator>
<#if parameters.cssStyle?exists>
<#if "${parameters.cssStyle?html}" == "vertical">
<br/><#rt/>
</#if>
</#if>