【问题标题】:How to get custom HTML markup with <s:radio> Struts 2 tag如何使用 <s:radio> Struts 2 标签获取自定义 HTML 标记
【发布时间】:2021-05-13 11:35:21
【问题描述】:

下面是&lt;s:radio&gt;标签,我用来打印列表listOfOptions作为选项列表

<s:radio cssClass="checkbox" listKey="id" listValue="text" name="mylist" list="listOfOptions" value="optionId" />

生成以下 html 标记:

  <input type="radio" class="checkbox" value="1" id="MyForm_mylist1" name="mylist">
  <label for="MyForm_mylist1">
    First Option
  </label>
  <input type="radio" class="checkbox" value="2" id="MyForm_mylist2" name="mylist">
  <label for="MyForm_Mylist2">
    Second Option
  </label>
  <input type="radio" class="checkbox" value="3" id="MyForm_mylist3" name="mylist">
  <label for="MyForm_mylist3">
   Third Option
  </label>

我能否以某种方式生成 HTML 标记,将 div 中的每个输入和标签元素用不同的类名包装起来。

我正在使用simple 主题类型。

【问题讨论】:

  • 谢谢大家,但我想除了制作自己的 struts 主题之外没有简单的解决方案。现在我已经做了一些 css 技巧来实现我想要的。

标签: java html jsp struts2 themes


【解决方案1】:

如果您对 Struts2 提供的主题不满意,控制 Struts2 标签的 HTML 输出的最佳方法是创建自己的主题。

请参阅 Wiki 中的 Struts2 Themes 部分。

【讨论】:

  • 我知道该选项,但对于所需的少量输出来说,这是一个漫长的过程。我在想必须有其他方式,比如使用struts标签的属性值等等。无论如何,谢谢你的建议。
  • 确保使用自己的主题的好处只有在您的应用程序中多次使用这种表单控件时才会产生效果。但在这种情况下,您也可以简单地将纯 html 标记与 s:iterator 和 s:property 标记结合使用。
  • 使用迭代器会影响处理时间吗?只是问
  • @Eez:迭代以任何一种方式发生。
【解决方案2】:

如果元素的labelpositiontop,则css_xhtml 主题用div 包裹每个表单元素和标签,这是默认设置。

div 具有类 wwctrl,这是硬编码的。

要指定元素类和标签类,请使用cssClass。请参阅文档页面中css_xhtml theme 的主题header 代码。

【讨论】:

  • 它不会包装每个标签和输入元素,如果我们使用 css_xhtml,它将全部包装在一个 div 中。我试过了。
  • 它包装了所有元素?
  • @Eez 这些 div 是什么类?
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 2015-05-14
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多