[ http://issues.apache.org/jira/browse/BEEHIVE-396?page=all ] Krista Baker closed BEEHIVE-396: -------------------------------- This item should have been resolved as a won't fix. The behavior of the defaultValue attribute has not changed, but a better example of how it is intended to be used within a repeater is given. > <netui:CheckBoxOption defaultValue doesn't take any expression or non-boolean > ----------------------------------------------------------------------------- > > Key: BEEHIVE-396 > URL: http://issues.apache.org/jira/browse/BEEHIVE-396 > Project: Beehive > Type: Bug > Components: NetUI > Versions: V1Beta > Reporter: David Madrid > Assignee: Krista Baker > > DefaultValue for checkBoxOption only allows a "true" of "false" value. It should also allow an explicit string or expression that resolves to checked, unchecked, String or String[] values that match any option values. > My resutls: > defaultValue= > "checked" - ignored > "unchecked" - ignored > "${any.expression}" - ignored > "true" - this works, generates html checked="checked" for all options. > "false" - this works. It will override the defaultValue in checkBoxGroup tag if set. > Note: According to the tld, CheckBoxOption should take a runtime expression. > *** TLD *** > <description><![CDATA[A checkbox whose state is determined by its enclosing CheckBoxGroup.]]></description> > <name>checkBoxOption</name> > <tag-class>org.apache.beehive.netui.tags.html.CheckBoxOption</tag-class> > > <attribute> > <description><![CDATA[Sets the default value.]]></description> > <name>defaultValue</name> > <required>false</required> > <rtexprvalue>true</rtexprvalue> > </attribute> > ***** > - Test Case: > 1. Create a jsp: > <netui:form action="post"> > <netui:checkBoxGroup dataSource="pageFlow.resultsThree" optionsDataSource="${pageFlow.checkGroupOptions}" repeater="true" > > <netui:span styleClass="normal" value="${container.item}" /> > <netui:checkBoxOption defaultValue="Check 1" value="${container.item}" /> > </netui:checkBoxGroup> > <netui:button value="Post" /> > </netui:form> > 2. Create a Controller.jpf: > // Results Three > private String resultsThree; > public String getResultsThree() > { > return resultsThree; > } > > public void setResultsThree(String resultsThree) > { > this.resultsThree = resultsThree; > } > private String[] _checkGroupOptions = {"Check 1", "Check 2", "Check 3", > "Default Check 1", "Default Check 2"}; > public String[] getCheckGroupOptions() { > return _checkGroupOptions; > } > 3. Run the JSP and see that "Check 1" checkbox is NOT selected. > - Expected Results: > Checkbox "Check 1" should be selected and html source should have checked="checked". > - Actual Results: > Checkbox "Check 1" is NOT selected and html source does NOT have checked="checked". > - Root Cause: > I think this might be because checkBoxOption.setDefaultValue() needs another case to set: > _defaultValue = defaultValue.toString(); > Right now, if defaultValue="Check 1", none of these cases are a match, so _defaultValue is set to false: > else { > _defaultValue = Boolean.valueOf(defaultValue.toString()); > ==== CheckBoxOption.setDefaultValue() ==== > /** > * Sets the default value (can be an expression). > * @param defaultValue - the default value > * @netui:attribute required="false" rtexprvalue="true" > * description="Sets the default value." > * @netui.tldx:attribute > */ > public void setDefaultValue(Object defaultValue) > throws JspException > { > if (defaultValue == null) { > String s = Bundle.getString("Tags_AttrValueRequired", new Object[]{"defaultValue"}); > registerTagError(s, null); > return; > } > if (defaultValue instanceof Boolean) { > _defaultValue = (Boolean) defaultValue; > } > else { > _defaultValue = Boolean.valueOf(defaultValue.toString()); > } > } > - There are no other exceptions or errors. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira