diff --git a/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/CheckboxListHandler.java b/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/CheckboxListHandler.java index d9c3f14a0..8184471dd 100644 --- a/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/CheckboxListHandler.java +++ b/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/CheckboxListHandler.java @@ -68,7 +68,7 @@ public class CheckboxListHandler extends AbstractTagHandler implements TagGenera a.add("type", "checkbox") .add("name", name) .add("value", itemKeyStr) - .addIfTrue("checked", params.get("nameValue")) + .addIfTrue("checked", isChecked(params, itemKeyStr)) .addIfTrue("readonly", params.get("readonly")) .addIfTrue("disabled", disabled) .addIfExists("tabindex", params.get("tabindex")) @@ -101,4 +101,18 @@ public class CheckboxListHandler extends AbstractTagHandler implements TagGenera } } } + + private Boolean isChecked(Map params, String itemKeyStr) { + Boolean checked = false; + if (itemKeyStr != null) { + String[] nameValues = (String[]) params.get("nameValue"); + for (String value : nameValues) { + if (checked = value.equalsIgnoreCase(itemKeyStr)) { + break; + } + } + } + return checked; + } + }