JSP:如何在foreach中使用radiobutton,属性名称/值动态变化

时间:2015-01-06 02:35:32

标签: java jsp servlets

我一直试图在foreach循环中显示带有相应值的单选按钮。然后,我想在下一个JSP页面上检索所选单选按钮的值。

这是我编码的一部分。

       <form action="EventList_to_seats_servlet" method="POST">     
            //There are irrelevant lines here.
            <c:otherwise>
                <c:forEach var="ID" items="${EventID}">
                //EventID, a list of Integer, comes from the previous servlet, 
                //set in HttpServletRequest
                //i.e. I wrote "request.setAttribute("EventID", EventID);" in the previous step.
                    <li>
                        <%= "Event ID: "%>   ${ID}
                        <input type="radio" name="${EventID}" value="ID" /><br><br>       
                    </li>
                 </c:forEach>
                 <input type="submit" value="Submit" name="submitOrderID" />
            </c:otherwise>      
        </form>

我想在下一个servlet上检索所选单选按钮的名称和值。

这是下一步的一部分(一个servlet,名为&#34; EventList_to_seats_servlet&#34;)。

BookingInfo bi = new BookingInfo();
//It's a bean dedicated to storing information entered by the client.

bi.setEventID(request.getParameter("ID"));
//It doesn't seem to be the right way to retrieve the selected radio button's name/value 

我已经测试了多种方法来从JSP获取值到servlet,但我仍然无法找到如何执行此操作,特别是因为单选按钮的名称和值是动态生成的。

如果您愿意提供任何建议,我将不胜感激。

P.S。

我发现了类似的帖子here,但老实说,我无法完全理解它,主要是因为我不确定如何使用${ }${ }似乎用于访问HttpServletRequest设置的值(即request.setAttribute("xxx", yyy);)。

但是,在我提到this posting之后,我认为${ }似乎也用于从Bean获取值。 在上面的示例中,您认为使用yyy获取${xxx}是一种常见的使用${ }吗?

1 个答案:

答案 0 :(得分:0)

按如下方式更改JSP和Servlet:

JSP:

<c:forEach var="ID" items="${EventID}">

                        <li>
                            <%= "Event ID: "%>   ${ID}
                            <input type="radio" name="selectedValue${id}" value="${ID.id}" /><br><br>       
                        </li>
 </c:forEach>

的Servlet:

 String selected = request.getParameter("selectedProd" + getId());


只需更改JSP:

<c:forEach var="ID" items="${EventID}">

                    <li>
                        <%= "Event ID: "%>   ${ID}
                        <input type="radio" name="${EventID}" value="${ID.id}" /><br><br>       
                    </li>
</c:forEach>