iteratorstruts2struts-tags

How to use <s:submit> button with id in an iterated list in Struts 2?


How do I use a Struts' <s:submit> button to submit the specific id of an object in an iterated list?

<s:form action="actionDeleteBooking">
    <s:iterator var = "bookingList" value="bookings">
        <s:submit label="delete booking" value = "cancel booking" theme = "simple" id="bookingid"  />
    </s:iterator>
</s:form>

I can do it for a radio button:

<s:form action="actionConfirmBooking">
    <s:iterator var = "pathList" value="results">
        <s:iterator var = "flightList" value="pathList">
            <s:radio name="flightSelected" list="flightList" listKey = "flightid"   id = "flightid" value = "flightid"/>
        </s:iterator>
    </s:iterator>
    <s:submit label="Submit" />
</s:form>

Solution

  • if what you are trying to achieve is to have a submit button for each "row", submitting one value, then use multiple forms and an hidden field:

    <s:iterator var = "bookingList" value="bookings">
        <s:form action="actionDeleteBooking">
            <s:hidden name="selectedItem" value="%{bookingid}" />
            <s:submit label="delete booking" value="cancel booking" theme="simple" />
        </s:form>
    </s:iterator>
    

    Otherwise use an <s:a />, or set a field with JavaScript, or describe better what you want.