[ 
https://issues.apache.org/jira/browse/WW-4987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16700989#comment-16700989
 ] 

Aleksandr Mashchenko edited comment on WW-4987 at 11/27/18 8:43 PM:
--------------------------------------------------------------------

Use plain html optgroup with {{<s:iterator>}}.

The real power of {{listCssClass}} comes from evaluating expression against 
value stack, so something like this:
{code:java}
<s:select list="#{'one':'1', 'two':'2'}" listCssClass="key"/>
{code}
 will be translated into options with {{class="one"}} and {{class="two"}} 
respectively.

Or even
{code:java}
<s:set var="cls" value="#{'one': 'thisinone', 'two': 'thisistwo'}"/>

<s:select list="#{'one':'1', 'two':'2'}" listCssClass="#cls[key]"/>
{code}
->

{{class="thisinone"}} and {{class="thisistwo"}}.

The {{listCssClass}} from select can be applied to optgroups in it, but it 
won't work for every case. For example if select's {{list}} is a map and 
optgroup's {{list}} is a list.


was (Author: aleksandr-m):
Use plain html optgroup with {{<s:iterator>}}.

The real power of {{listCssClass}} comes from evaluating expression against 
value stack, so something like this:
{code:java}
<s:select list="#{'one':'1', 'two':'2'}" listCssClass="key"/>
{code}
 will be translated into options with {{class="one"}} and {{class="two"}} 
respectively. Or even
{code:java}
<s:set var="cls" value="#{'one': 'thisinone', 'two': 'thisistwo'}"/>

<s:select list="#{'one':'1', 'two':'2'}" listCssClass="#cls[key]"/>
{code}
->

{{class="thisinone"}} and {{class="thisistwo"}}.

The {{listCssClass}} from select can be applied to optgroups in it, but it 
won't work for every case. For example if select's {{list}} is a map and 
optgroup's {{list}} is a list.

> Setting Struts2 <s:select> options Css Class
> --------------------------------------------
>
>                 Key: WW-4987
>                 URL: https://issues.apache.org/jira/browse/WW-4987
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Tags
>    Affects Versions: 2.5.17
>            Reporter: Muhammad Salman
>            Priority: Major
>             Fix For: 2.6, 2.5.19
>
>
> Hi
> I am working on an application that is built on struts 2.5.17. I have 
> {{<s:select>}} tag with <optgroup> and <option>. I am trying to add cssClass 
> to <options> under <optgroup>. I am trying to add css class to <option> using 
> listCssClass attribute of {{<s:select>}} but it is not adding class to the 
> <option>. Any help would be much appreciated.
> Here is code from my JSP:
> {code:xml}
> <s:select list="#\{'none':'-Select Template-'}" id="export-data" 
> cssStyle="width:250px;" title="templateDesc" cssClass="templateType" 
> onchange="adjustReportText()" name="templateID" listCssClass="templateType"> 
> <s:iterator value="\{SOME MAP WITH KEY AND LIST OF VALUES}" var="TG" 
> status="stat"> 
> <s:optgroup label="%\{key}" list="%\{value}" listKey="templateId" 
> listValue="templateName" ></s:optgroup> 
> </s:iterator> 
> </s:select>
> {code}
>  Initially we were working on struts 2.2.3 version and in that version, 
> cssClass attribute populates the CSS Class for <option>, but in 2.5.17 
> neither cssClass is populated class to <option> nor listCssClass.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to