Struts2 select标签 设置Class属性生成的html代码中select没有class属性问题
2012-08-02 17:42
931 查看
是因为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>
/>
<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>
/>
相关文章推荐
- Yii——使用CHtml::link()等方法时,设置htmlOptions属性可快速生成js代码和ajax请求
- Html.BeginForm方法没有生成Form标签的问题
- struts2 标签中添加 class 属性问题
- 一个关于Struts2标签中cssClass属性的问题
- jquery,html动态生成select标签出问题
- 在struts中html:select 标签的disabled属性中使用java代码
- Html.BeginForm方法没有生成Form标签的问题
- struts2中,解决property标签原样输出HTML代码的问题
- struts2标签遍历时,显示内容忽略<html>代码问题
- jquery html动态生成select标签出问题的解决方法
- 解决struts2+jasperReport在生成html形式的报表时的图片问题 没有测试
- jquery html动态生成select标签出问题的解决方法
- 工作总结 @Html 辅助方法 为 生成的 标签设置元素属性 htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性。
- UserControl 的一个值得注意的问题 [属性" * "的代码生成失败.错误是:"程序集"*.Version=1.0.0.0,Culture=neutral,..........无标记为序列化"
- Struts2的select标签的默认值设置
- html + css 在设置了 z-index 属性后没效果的问题解决办法
- 基础问题:设置radio、select、checkbox 的readonly 属性
- Android 通过Java代码生成创建界面。动态生成View,动态设置View属性。addRules详解
- Struts2下进行html转义的方法(解决页面输出html标签问题)
- Form:解决,自定义控件重写Text属性时,设计时不能在InitializeComponent中生成代码的问题