我正在尝试在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标签中描述数据属性。
答案 0 :(得分:5)
覆盖<s:select>
代码模板。或者只使用带有<s:iterator>
<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>
答案 1 :(得分:2)
您无法直接将自定义属性注入Struts2 UI标记。
根据Dave Newton的评论,您可以使用Struts2&gt; = 2.1.x
但是仍然无法将它们应用于option
元素而不是select
,因此我会留下答案,以防您需要将原始select
标记扩展到定义自定义行为(例如将某些属性应用于选项)。
您可以extend
<s:select>
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(demo:http://jsfiddle.net/CLNDs/);它们是可访问的,但在源代码中不可见。