Java Struts列表listKey listValue listClass?

时间:2009-05-29 17:17:28

标签: java jsp struts

java的新东西,并且在为这个SELECT选项分配class属性时遇到了麻烦。想知道listClass是否正确?我想要完成的是将一个类属性添加到SELECT下拉选项

我有什么:

<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="ford">F150</option>
</select>

我想要的是什么:

<select>
  <option class="car" value="volvo">Volvo</option>
  <option class="car" value="saab">Saab</option>
  <option class="car" value="mercedes">Mercedes</option>
  <option class="truck" value="ford">F150</option>
</select>

这是JSP代码:

<s:select id="theSelectId" 
   name="theDto.id" 
   value="#attr.theDto.field_id" 
   list="theDtoList" 
   listKey="field_id" 
   listValue="field_value"/>

有listClass吗?或者另一种拉动我需要的价值的方式?

3 个答案:

答案 0 :(得分:0)

我刚刚对Struts标签lib API进行了快速检查,看起来Struts select标签的styleClass属性将创建一个类属性。

http://struts.apache.org/1.x/struts-taglib/tlddoc/html/select.html

答案 1 :(得分:0)

为此,我怀疑你必须推出自己的标签。您可以创建一个新的myselect标记,该标记接受optionClass参数,该参数将该类设置为每个选项元素。

答案 2 :(得分:0)

听起来像Struts s:select与JSF h具有相同的问题:selectOneMenu:无法为每个选项指定一个类。我不做Sruts,所以我不能给出一个详细的Struts特定的答案,但到了这一点,你需要更改/覆盖s:select组件的渲染器,这样它才需要一个额外的属性,你最终可以用来指定选项类。像this JSF example中那样的事情。

如果由于struts的限制或功能限制而未在服务器端执行此操作,请考虑使用类似上述jQuery的Javascript库。那么就是一个例子:

var optionClasses = ['volvo', 'saab', 'mercedes'];
$('#dropdownId option').each(function(index, optionElement) {
    $(optionElement).class(optionClasses[index]);
});