使<s:checkboxlist>的选项在struts2中垂直显示

Sam*_*Sam 5 java struts2

*我需要我的复选框列表选项以垂直显示而不是默认的水平显示.我在名称模板的src文件夹中创建了一个文件夹,另一个名为vertical-checkbox的文件夹包含我自定义复选框的修改后的.ftl文件list.I我无法显示自定义复选框我在JSP中的代码是

  <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'}"
      />
Run Code Online (Sandbox Code Playgroud)

请告诉我出错的地方.

小智 9

通常,struts2中的struts checkboxlist会水平显示复选框.在大多数应用程序中,我们希望垂直显示复选框(逐行).为了将其对齐为垂直,我们必须执行以下操作

  1. 您必须在src文件夹中创建目录模板

  2. 创建一个文件夹,其中包含您要创建的模板的名称(vertical-checkbox)

  3. 将struts-2.1.6/src/core/src/main/resources/template/simple/checkboxlist.ftl文件复制到此文件的目录内容如下.在您必须根据需要
    添加标签或喜欢此链接之前:http: //codeglobe.blogspot.com/2009/09/struts2-align-check-box-vertical.html

  4. <s:checkboxlist list="urlist" name="selectedValues" listKey="id" listValue="descrption" theme="vertical-checkbox"></s:checkboxlist>

这将为您提供一个垂直复选框列表.唯一的区别是,您必须在此处指定主题,该主题与您在项目的src文件夹中的模板目录中创建的目录相同.


Tob*_*obb 6

我尝试了这里提供的答案,但它没有按照我的希望工作,我在列表上丢失了标签,而且其他格式也消失了.所以,我通过css做到了:

<s:checkboxlist
  name="myCheckboxList"
  ... />
Run Code Online (Sandbox Code Playgroud)

这导致像这样的html元素:

<input type="checkbox" id="myCheckboxList-1" ... />
<label for="myCheckboxList-1" ...
<input type="checkbox" id="myCheckboxList-2" ... />
<label for="myCheckboxList-2" ... 
Run Code Online (Sandbox Code Playgroud)

使复选框垂直的CSS看起来像这样:

label[for*=myCheckboxList-]:after {
    content:"\A"; white-space:pre;
}
Run Code Online (Sandbox Code Playgroud)

选择器声明"在每个带有包含'myCheckboxList-'的for-属性的标签之后,并且内容状态"添加换行符("\ A")并确保保留空格".


小智 0

如果没有看到修改后的 .ftl 文件,很难判断哪里出了问题,但一般的解决方案是:

  • 将 checkboxlist.ftl 复制到新目录(例如 .../template)
  • 在复制的文件中,在 checkboxLabel 类和迭代器之间添加一个分隔符:

    <label ... class="checkboxLabel">
    <br>
    </@s.iterator>
    
    Run Code Online (Sandbox Code Playgroud)
  • 引用/包含新的 .../template/checkboxlist.ftl 以覆盖标准 checkboxlist.ftl。

如果我没记错的话,上面也可以在 CSS 中完成,但我忘记了细节。