2009-05-29 57 views
0

新的java的东西,并有麻烦分配一个类属性到这个SELECT选项。想知道listClass是否正确?我试图做到的是一类属性添加到一个SELECT下降的选项下Java Struts列表关键字列表值列表类别?

我有什么:

<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?或者拉我需要的价值的另一种方式?

回答

0

我只是做了一个Struts标签库API的快速检查,它看起来像Struts select标签的styleClass属性将创建一个类属性。

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

+0

嗯,感谢您的链接,我添加了styleClass =“theDto.field_id”,但这显示为未识别的属性名称。我可以使用cssClass,但这只会将类添加到SELECT标记中,而不是选项,以及它不会为选项拉取对象值。 – 2009-05-29 17:55:36

0

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

+0

这听起来像我需要的解决方案,但不知道如何写我自己的标签,关于我可以从哪里开始的任何想法? – 2009-06-01 14:26:52

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]); 
});