是因為struts2中select標籤沒有class這項,代替的是使用cssClass項目,例如:
<s:select cssClass=“left” list=”myselectList” name=”selectName” id=”selectId” value=”selectValue”>
其實看struts2的源碼就會發現struts2產生select標籤時不會去取名為class的參數,而是去取名為cssClass的參數來產生class="?"。
struts2中select標籤,首先list屬性是必選的,是下拉式清單的值,一般情況下是一個list
其中value屬性代表是option的值,一般情況下是list的對象的一個屬性值,
headerKey,headerValue是第一下拉式功能表的顯示名稱和值
cssClass:等效於<select class=”dd”>
cssStyle:等效與<select style=”width:190px”>
size代表下拉帶菜單的顯示的條數,預設是1
但是Struts2 checkboxlist設定cssClass屬性標籤也是沒用的,還是要看源碼就能明白:
開啟checkboxlist.ftl看,內容如下:
<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}"<#rt/>
<#if tag.contains(parameters.nameValue, itemKey)>
checked="checked"<#rt/>
</#if>
<#if parameters.disabled?default(false)>
disabled="disabled"<#rt/>
</#if>
<#if parameters.title??>
title="${parameters.title?html}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
<#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
/>
根本沒有cssClass參數進行設定。
添加下面的內容,在替換struts2包中的 checkboxlist.ftl 檔案就可以了:
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
</#if>
完整的ftl檔案如下:
<#assign itemCount = 0/>
<#if parameters.list??>
<@s.iterator value="parameters.list">
<#assign itemCountitemCount = itemCount + 1/>
<#if parameters.listKey??>
<#assign itemKey = stack.findValue(parameters.listKey)/>
<#else>
<#assign itemKey = stack.findValue('top')/>
</#if>
<#if parameters.listValue??>
<#assign itemValue = stack.findString(parameters.listValue)?default("")/>
<#else>
<#assign itemValue = stack.findString('top')/>
</#if>
<#assign itemKeyitemKeyStr=itemKey.toString() />
<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}"<#rt/>
<#if tag.contains(parameters.nameValue, itemKey)>
checked="checked"<#rt/>
</#if>
<#if parameters.disabled?default(false)>
disabled="disabled"<#rt/>
</#if>
<#if parameters.title??>
title="${parameters.title?html}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
<#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
/>
<label for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}</label>
</@s.iterator>
<#else>
</#if>
<input type="hidden" id="__multiselect_${parameters.id?html}" name="__multiselect_${parameters.name?html}" value=""<#rt/>
<#if parameters.disabled?default(false)>
disabled="disabled"<#rt/>
</#if>
/>