java - Request query from multiple dynamic checkboxes with Spark -
i have html list of checkboxes dynamically created freemarker. html looks this:
<div data-role="collapsible"> <h4>software</h4> <form action="/" method="post"> <ul data-role="listview" > <#list softwareoptions software> <input type="checkbox" id="softwarefilter" name="softwarefilter" value="${software}" autocomplete="off" >${software} </#list> </ul> </form> </div> here's generated list:
<div data-role="collapsible"> <h4>software</h4> <form action="/" method="post"> <ul data-role="listview" > <input type="checkbox" id="softwarefilter" name="softwarefilter" value="adobe creative cloud" autocomplete="off" >adobe creative cloud <input type="checkbox" id="softwarefilter" name="softwarefilter" value="adobe web premium" autocomplete="off" >adobe web premium <input type="checkbox" id="softwarefilter" name="softwarefilter" value="matlab" autocomplete="off" >matlab <input type="checkbox" id="softwarefilter" name="softwarefilter" value="quicken" autocomplete="off" >quicken <input type="checkbox" id="softwarefilter" name="softwarefilter" value="steam" autocomplete="off" >steam <input type="checkbox" id="softwarefilter" name="softwarefilter" value="ibm spss statistics" autocomplete="off" >ibm spss statistics <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft sql server 2008" autocomplete="off" >microsoft sql server 2008 <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft sql server 2012" autocomplete="off" >microsoft sql server 2012 <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft office" autocomplete="off" >microsoft office <input type="checkbox" id="softwarefilter" name="softwarefilter" value="autodesk infrastructure design suite" autocomplete="off" >autodesk infrastructure design suite <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft visual studio 2010" autocomplete="off" >microsoft visual studio 2010 <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft visual studio 2013" autocomplete="off" >microsoft visual studio 2013 <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft visual studio 2015" autocomplete="off" >microsoft visual studio 2015 <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft visio" autocomplete="off" >microsoft visio <input type="checkbox" id="softwarefilter" name="softwarefilter" value="unity 3d" autocomplete="off" >unity 3d <input type="checkbox" id="softwarefilter" name="softwarefilter" value="gimp" autocomplete="off" >gimp <input type="checkbox" id="softwarefilter" name="softwarefilter" value="maxon cinema 4d broadcast" autocomplete="off" >maxon cinema 4d broadcast <input type="checkbox" id="softwarefilter" name="softwarefilter" value="crazybump" autocomplete="off" >crazybump <input type="checkbox" id="softwarefilter" name="softwarefilter" value="fraps" autocomplete="off" >fraps <input type="checkbox" id="softwarefilter" name="softwarefilter" value="infrarecorder" autocomplete="off" >infrarecorder <input type="checkbox" id="softwarefilter" name="softwarefilter" value="garageband" autocomplete="off" >garageband <input type="checkbox" id="softwarefilter" name="softwarefilter" value="microsoft project" autocomplete="off" >microsoft project <input type="checkbox" id="softwarefilter" name="softwarefilter" value="numbers" autocomplete="off" >numbers <input type="checkbox" id="softwarefilter" name="softwarefilter" value="pages" autocomplete="off" >pages <input type="checkbox" id="softwarefilter" name="softwarefilter" value="fontographer" autocomplete="off" >fontographer <input type="checkbox" id="softwarefilter" name="softwarefilter" value="keynote" autocomplete="off" >keynote <input type="checkbox" id="softwarefilter" name="softwarefilter" value="wacom tablet" autocomplete="off" >wacom tablet <input type="checkbox" id="softwarefilter" name="softwarefilter" value="arduino" autocomplete="off" >arduino <input type="checkbox" id="softwarefilter" name="softwarefilter" value="ibooks" autocomplete="off" >ibooks <input type="checkbox" id="softwarefilter" name="softwarefilter" value="imovie" autocomplete="off" >imovie <input type="checkbox" id="softwarefilter" name="softwarefilter" value="logic pro x" autocomplete="off" >logic pro x <input type="checkbox" id="softwarefilter" name="softwarefilter" value="itunes" autocomplete="off" >itunes </ul> </form> </div> to request values of check boxes use java code:
object softstring = request.queryparams("softwarefilter"); however returns string value of name of first check box checked. example, if adobe creative suite , matlab checked, softstring = "adobe creative suite".
when use:
object softstring = request.queryparamsvalues("softwarefilter"); or
queryparamsmap softmap = request.querymap("softwarefilter"); i empty array , null map respectively. hints might missing?
i used same html codes in question, except added submit tag form.
based on inspection, options selected in form data part.
as such, options can retrieved req.body(); example, if select 'adobe creative cloud' , 'adobe web premium', output req.body(); is
softwarefilter=adobe+creative+cloud&softwarefilter=adobe+web+premium now matter of parsing raw string options selected. hope helps.

Comments
Post a Comment