【问题标题】:Using custom data attribute in Struts 2 s:select在 Struts 2 中使用自定义数据属性:选择
【发布时间】:2017-04-18 18:32:19
【问题描述】:

我正在尝试在 Struts2 标记中使用 HTML 的自定义数据属性 这是我的示例代码

<s:select list="myList" listKey="myListVal"  listValue="myListDesc"  data-inputs="myListInput" ></s:select>

例如,我期待这样的事情

<select >
     <option value="myListVal1" data-inputs="myListInput1">myListDesc1</option>
     <option value="myListVal2" data-inputs="myListInput2">myListDesc2</option>
     <option value="myListVal3" data-inputs="myListInput3">myListDesc3</option>
</select>

我得到了这个

<select data-inputs="myListInput" >
     <option value="myListVal1" >myListDesc1</option>
     <option value="myListVal2" >myListDesc2</option>
     <option value="myListVal3" >myListDesc3</option>
</select>

是否可以在struts select标签中为Options里面描述data-attribute。

【问题讨论】:

  • 我不知道你为什么这么期待;没有机制可以在一个标签中设置属性并让 S2 找出它应该出现的位置。

标签: struts2 struts-tags


【解决方案1】:

覆盖&lt;s:select&gt; 标记模板。或者只是使用带有&lt;s:iterator&gt;的HTML标签

<select name="list">
   <s:iterator value="myList" status="stat">
      <option value="<s:property value="myListVal"/>" data-inputs="myListInput<s:property value="#stat.index"/>"><s:property value="myListDesc"/></option>
   </s:iterator>
</select>

【讨论】:

    【解决方案2】:

    您不能直接将自定义属性注入到 Struts2 UI Tag 中。

    根据 Dave Newton 的评论,您可以使用 Struts2 >= 2.1.x

    但是仍然不可能将它们应用于option 元素而不是select,所以如果您需要扩展原始select 标签来定义自定义行为(例如将某些属性应用于选项)。


    你可以extend &lt;s:select&gt; Struts2 标签来允许它管理新的属性...:http://bodez.wordpress.com/2009/03/13/customising-struts2-jsp-tags/ ,

    或直接创建您自己的标签,但在您的情况下将是矫枉过正:http://joshuajava.wordpress.com/2008/12/27/creating-custom-components-with-struts-2/)。

    最后但同样重要的是,您甚至可以在页面呈现后添加自定义属性,使用类似 jQuery 的东西(演示:http://jsfiddle.net/CLNDs/);它们将是可访问的,但在源代码中不可见。

    【讨论】:

    • 你可以,只是没有魔法可以让属性显示在任意元素中。
    • 真的吗?如何 ?只是简单地写在标签中?马上试试,谢谢
    • @DaveNewton:我不断收到 Javelin9 JSP 编译错误;我正在使用 Struts 2.0.14(由于公司标准)。也许 Struts2 的最新版本允许使用“逐字”模式?
    • 它是在 2.1+ 中引入的,不过我不记得具体是哪个版本了。
    • 谜团解决了,谢谢。我们真的应该改变这个陈旧的标准并选择 Struts 2.3:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2014-03-25
    • 1970-01-01
    • 2015-05-14
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多