[ https://issues.apache.org/jira/browse/WW-4987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16702787#comment-16702787 ]
Muhammad Salman edited comment on WW-4987 at 11/29/18 6:55 AM: --------------------------------------------------------------- Hi [~aleksandr-m] I have tried your proposed solution, here is what I did: {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="%{@com.ibm.hscms.web.cache.ReportingTemplatesCache@getTemplatelistByGroup('inventory',#session.pro_user)}" var="TG" status="stat"> <optgroup label="<s:property value='key' />" list="%{value}" listKey="templateId" listValue="templateName" ></optgroup> </s:iterator> </s:select> {code} Here is the output HTML Being generated by jsp : {code:xml} <optgroup label="Cognos Reports" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Executive Dashboard" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Global Priority Reports" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Global Reports" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Inventory Upload Report" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Miscellaneous" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <select name="templateID" id="export-data" class="templateType" style="width:250px;" title="templateDesc" onchange="adjustReportText()"> <option value="none">--Select Template--</option> </select> {code} I know that the {color:red}list="%{value}" listKey="templateId" listValue="templateName" {color} should not go as is in the <optgroup> tag but If I remove these values then how would struts taglib know that this particular option would go into that particular <optgroup> Let me share with you my datastructure as well which I am using to populate s:select which was working in struts 2.2.3: {code:xml}Map<String,List<Template>> map = new LinkedHashMap<String,List<Template>>();{code} Now I hope you can related this data-structure to my orignal <s:select> defination. was (Author: mfsalmani678): Hi [~aleksandr-m] I have tried your proposed solution, here is what I did: {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="%{@com.ibm.hscms.web.cache.ReportingTemplatesCache@getTemplatelistByGroup('inventory',#session.pro_user)}" var="TG" status="stat"> <optgroup label="<s:property value='key' />" list="%{value}" listKey="templateId" listValue="templateName" ></optgroup> </s:iterator> </s:select> {code} Here is the output HTML Being generated by jsp : {code:xml} <optgroup label="Cognos Reports" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Executive Dashboard" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Global Priority Reports" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Global Reports" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Inventory Upload Report" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <optgroup label="Miscellaneous" list="%{value}" listkey="templateId" listvalue="templateName"></optgroup> <select name="templateID" id="export-data" class="templateType" style="width:250px;" title="templateDesc" onchange="adjustReportText()"> <option value="none">--Select Template--</option> </select> {code} I know that the {color:red}list="%{value}" listKey="templateId" listValue="templateName" {color} should not go as is in the <optgroup> tag but If I remove these values then how would struts taglib know that this particular option would go into that particular <optgroup> Let me share with you my datastructure as well which I am using to populate s:select which was working in struts 2.2.3: {code:xml}Map<String,List<Template>> map = new LinkedHashMap<String,List<Template>>();{code} Now I hope you can related this data-structure to my orignal <s:select> defination. > 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 > Assignee: Aleksandr Mashchenko > 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)