Agreed. I think an upgrade to the checklistbox tag is in warranted. Through my searches there are many posts looking for ways to "layout" the checkboxlist better. Most frustrating on this tag is the actual checkbox and the label will break lines making this unacceptable from a UI perspective. Also, many users I saw just wanted a one column format. I would propose surrounding the <input type=checkbox> and <label> html elements in a <div> tag (you could even supply an additional "class" and "style" attribute to the tag). This way a user could set widths, floats, etc for the div tag. This hack below did the trick for me. By setting the <div> Class properties: "float" in combination with "width" you can easily set up one column lists or fixed width layouts that extend to the next line easily. Would make this tag much more versatile - especially with just a small modification.
<#-- Modified checklistbox.tld with surrounding div tag --> <div class="myCustomDivClass"> <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" /> /> <label for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}</label> <#-- Add ending div tag --> </div> On Sat, Oct 9, 2010 at 3:08 PM, Dave Newton <davelnew...@gmail.com> wrote: > Much cleaner to encapsulate the behavior, especially if it's used > often. It might be easier to use a JSP-based tag, though, than to > extend an S2 tag. > > On Saturday, October 9, 2010, Maurizio Cucchiara > <maurizio.cucchi...@gmail.com> wrote: >> Dave you're right, >> I was not clear >> I'll try to explain better: >> >> <s:iterator status="stat" value="list" > >> <s:checkbox label="checkbox label" name="checkboxName" >> value="checkboxValue"/> >> >> <s:if test="(#stat.index % 3)==0"> >> insert breaking string >> </s:if> >> >> Maurizio Cucchiara >> >> 2010/10/9 Dave Newton <davelnew...@gmail.com>: >>> I think encapsulating this kind of behavior in a custom tag is why >>> custom tags exist--and since the iteration is handled by the >>> checkboxlist tag internally, using an iterator/etc. doesn't really >>> work. >>> >>> Dave >>> >>> On Saturday, October 9, 2010, Maurizio Cucchiara >>> <maurizio.cucchi...@gmail.com> wrote: >>>> Do you need to insert a breaking string every 3 items? >>>> I think this approach is too much expansive in term of time. >>>> Furthermore, after that, you should deal with subcassing process. >>>> You should have valid reasons for do that. >>>> Why don't you simply use mod operator?: >>>> >>>> <s:iterator status="stat" value="{1,2,3,4,5}" > >>>> <s:if test="(#stat.index % 3)==0"> >>>> insert breaking string >>>> </s:if> >>>> ..... >>>> </s:iterator> >>>> >>>> >>>> Maurizio Cucchiara >>>> >>>> >>>> 2010/10/9 Burton Rhodes <burtonrho...@gmail.com>: >>>>> I am trying to override a struts tag template (specifically >>>>> <s:checkboxlist>), and I can't figure out how to add a parameter to >>>>> the tag. I have successfully overridden the template by copying >>>>> "checkboxlist.tld" to my template/simple directory and all works well. >>>>> Now I would like to add a parameter. It appears that I need to >>>>> override the the META-INF/struts-tags.tld file because I keep getting >>>>> the error below. However, using the same method as checkboxlist.tld, >>>>> I copy a modified version of struts-tags.tld to my >>>>> META-INF/struts-tags.tld directory. However, I still get the same >>>>> error below. Not sure if I need to modify another file or if >>>>> struts-tags.tld cannot be "overridden". Anyone given this a try? >>>>> Trying not to have to create a new custom tag since all I want is a >>>>> simple modification to checkboxlist.tld. >>>>> >>>>> ------------ERROR-------------------- >>>>> /contact/contactCreate.jsp(286,6) PWC6131: Attribute breakCount >>>>> invalid for tag checkboxlist according to TLD >>>>> >>>>> Caused by: >>>>> org.apache.jasper.JasperException: /contact/contactCreate.jsp(286,6) >>>>> PWC6131: Attribute breakCount invalid for tag checkboxlist according >>>>> to TLD >>>>> ------------------------------------------- >>>>> >>>>> Tag with added parameter (breakCount): >>>>> >>>>> <s:checkboxlist >>>>> name="ownerIds" >>>>> list="%{activeAppUserList}" >>>>> listKey="appUserId" >>>>> listValue="nameInformal" >>>>> required="true" >>>>> breakCount="3" <!-- New Parameter, will enter the >>>>> breakString after every 3 items --> >>>>> breakString="<br/>" >>>>> /> >>>>> >>>>> Excerpt from modified "struts-tags.tld": >>>>> .... >>>>> <tag> >>>>> <description><![CDATA[Render a list of checkboxes]]></description> >>>>> <name>checkboxlist</name> >>>>> <tag-class>org.apache.struts2.views.jsp.ui.CheckboxListTag</tag-class> >>>>> <body-content>JSP</body-content> >>>>> <attribute> >>>>> <description><![CDATA[Set the html accesskey attribute on >>>>> rendered html element]]></description> >>>>> <name>accesskey</name> >>>>> <required>false</required> >>>>> <rtexprvalue>false</rtexprvalue> >>>>> </attribute> >>>>> <attribute> >>>>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org