Java 选择a<;s:复选框列表>;在struts2中垂直显示

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=

*我需要我的复选框列表选项垂直显示,而不是默认的水平显示。我已在名称模板中的src文件夹中创建了一个文件夹,并使用名称垂直复选框创建了另一个文件夹,其中包含自定义复选框列表的修改.ftl文件。我无法显示自定义复选框 我在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'}"
      />


请告诉我哪里出错。

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

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

    <label ... class="checkboxLabel">
    <br>
    </@s.iterator>
    
    
    
  • 参考/包括新的…/template/checkboxlist.ftl以覆盖标准checkboxlist.ftl


如果我没记错的话,上面的内容也可以用CSS来完成,但我忘记了细节。

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

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

  • 使用要创建的模板的名称创建文件夹(垂直复选框)

  • 将struts-2.1.6/src/core/src/main/resources/template/simple/checkboxlist.ftl文件复制到此目录,该文件的内容如下所示。在开始之前,您必须根据需要或喜欢此链接放置一个
    标记:


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

    我尝试了这里提供的答案,但它没有如我所希望的那样工作,我丢失了列表上的标签,其他格式也消失了。所以,我是通过css实现的:

    <s:checkboxlist
      name="myCheckboxList"
      ... />
    
    选择器声明“在每个带有包含“myCheckboxList-”的for属性的标签之后”,内容声明“添加换行符(“\a”)并确保保留空白”

    请访问此网站:

    基本上,你只需要:

  • 打开文件checkboxlist.ftl
  • 它将包含3行,中间一行使用简单主题中的checkboxlist.ftl。评论这句话:

    <#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
    
    
    
  • 然后复制上述URL中引用的freemarker代码

  • 我做到了,这对我很有效。它将在自己的单行上显示您的复选框。

    您可以在此处看到: 我认为这是最简单明了的方法

  • 在应用程序的WEB-INF/classes文件夹中创建文件夹模板
  • 在WEB-INF/classes/template文件夹(或其他主题的另一个文件夹)中创建简单文件夹
  • 从struts2-core.jar库复制文件checkboxlist.ftl(该库位于jar归档文件的简单主题文件夹中)
  • 关闭此标签字符串后在此文件中(有关详细信息,请参阅链接):
  • for=“${parameters.name?html}-${itemCount}”class=“checkboxLabel”>${itemValue?html} 在字符串之前:

    </@s.iterator>
    
    
    
    添加以下内容(介于两者之间):

    
    
    在这段代码中,“垂直”是css样式,我们将在strust2页面中使用它,
    是列表中两个复选框之间的分隔符

  • 在带有s:checkboxlist的struts2页面上,使用样式“垂直”创建垂直列表方向:


  • @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>