I'm trying to make a form that can contain an arbitrary number of attribute choices. Think of a tshirt with color and size.
I have a Product that contains Variations (size, color) that contain VariationItems (blue, XL). The variation can be either a dropdown or a radio button set. <s:iterator value="product.variations" status="variation"> <table> <tr> <td colspan="2"> we have a variation <s:property value="name" /> </td> </tr> <s:if test="display == 'radio'"> <s:radio listKey="num" listValue="value" list="itemList" name="variation[%{#variation.index}].num" /> </s:if> <s:if test="display == 'dropdown'"> <s:select list="itemList" listKey="num" listValue="value" name="variation[%{#variation.index}].num" ></s:select> </s:if> </table> </s:iterator> On Sun, Feb 25, 2018 at 8:57 AM, Dave Newton <davelnew...@gmail.com> wrote: > It’s not entirely clear to me what you’re asking. > > `getItemList` will return whatever it returns—if the logic for what should > return lies in the view layer then it’s an architectural problem. > > If you need to return two lists then you should have two list getters. If > the view layer *presentation* of the list varies by list content then the > list should be presented in a structure that represents that, e.g., > > Class ViewList { > String representation; // e.g., “radio”, “dropdown”, etc. > List items; // The things to show > } > > If it depends on actions *taken* in the view layer, e.g., something > JavaScript-y, then all this is out the window and we’d need more > information. > > Dave > > On Sat, Feb 24, 2018 at 5:00 PM Dave Weis <djw...@sjdjweis.com> wrote: > > > Hello > > > > I am trying to make multiple sets of radio buttons with independent lists > > of valid options. The options are all generated dynamically. > > > > I'm having trouble figuring out how to declare the item list provider in > my > > java code. I have it working fine for a single item. With the sample > below > > I get the same list for both my radio buttons and my dropdown but I need > to > > be able to modify the list returned based on which line of input I'm on. > > > > Thank you > > dave > > > > > > > > > > > > <s:iterator value="product.variations"> > > > > <table> > > <!-- variation stuff --> > > > > <tr> > > <td colspan="2"> > > we have a variation <s:property value="name" /> > > </td> > > </tr> > > > > <s:if test="display == 'radio'"> > > > > <s:radio key="name" list="itemList" /> > > > > </s:if> > > > > <s:if test="display == 'dropdown'"> > > > > <s:select list="itemList" key="name"></s:select> > > > > </s:if> > > > > </table> > > > > </s:iterator> > > > > > > > > public ArrayList<String> getItemList() { > > > > logger.debug("get item list"); > > ArrayList<String> retval = new ArrayList<String>(); > > retval.add("the first option"); > > retval.add("the second option"); > > return retval; > > } > > > -- > e: davelnew...@gmail.com > m: 908-380-8699 > s: davelnewton_skype > t: @dave_newton <https://twitter.com/dave_newton> > b: Bucky Bits <http://buckybits.blogspot.com/> > g: davelnewton <https://github.com/davelnewton> > so: Dave Newton <http://stackoverflow.com/users/438992/dave-newton> >