Java JSP:如何在foreach中使用radiobutton,属性名称/值动态更改

Java JSP:如何在foreach中使用radiobutton,属性名称/值动态更改,java,jsp,servlets,Java,Jsp,Servlets,我一直试图做的是在foreach循环中显示具有相应值的单选按钮。然后,我想在下一个JSP页面上检索所选单选按钮的值 这是我的部分代码 <form action="EventList_to_seats_servlet" method="POST"> //There are irrelevant lines here. <c:otherwise> <c:forEach

我一直试图做的是在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>
我已经测试了从JSP到servlet获取值的多种方法,但我仍然无法找到如何做到这一点,特别是因为单选按钮的名称和值都是动态生成的

如果你能给我一些建议,我将不胜感激

p.S.

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

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

如下更改JSP和Servelet:

JSP:


只需更改JSP:

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

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

  • ${ID}


  • 这在我看来很常见,您需要仔细研究这些东西是如何工作的,或者更确切地说,在这种情况下。谢谢您的回复。我想知道我是否可以问一个愚蠢的问题。据介绍,EL可用于访问“存储在JavaBeans组件中的应用程序数据”。然而,我上面的代码访问的不是JavaBean,而是一个由“request.setAttribute(“EventID”,EventID)”设置的属性;“你看到我有什么地方出错了吗?没有,先生,我什么都没看到,我相信${}也会查看你的请求范围我一直在阅读你显示的链接,并研究我不知道的关于JSTL&EL的内容。。。因此,如果在
    $()
    中只有一个属性的名称,那么这个
    $()
    应该查看的属性,但是如果有一个属性附加了它的对象名称,那么
    $()
    会搜索对象的属性吗?看来无论如何,我应该自己研究它们。谢谢你的回答。似乎需要修改“ID”,使其具有一个属性(即ID.ID),因为“EventID”只是一个整数列表,它没有这样的方法。你能告诉我你是怎么想的吗?ID.ID是循环自动生成的ID,用来知道循环索引。
    request.getParameter(“selectedProd”+EventID.getId())
    当我用servlet尝试第一个循环时,出现了一个编译时错误。(servlet中没有
    getId()
    的符号)。此时,系统提示我在servlet中导入
    com.sun.java.accessibility.util.EventID
    ,因此无论如何都有一些进展。当我尝试您的第二个建议时,它产生了一个运行时错误(这是http 500错误,表示
    javax.el.PropertyNotFoundException:类“java.lang.Integer”没有属性“id”。
    <c:forEach var="ID" items="${EventID}">
    
                            <li>
                                <%= "Event ID: "%>   ${ID}
                                <input type="radio" name="selectedValue${id}" value="${ID.id}" /><br><br>       
                            </li>
     </c:forEach>
    
     String selected = request.getParameter("selectedProd" + getId());
    
    <c:forEach var="ID" items="${EventID}">
    
                        <li>
                            <%= "Event ID: "%>   ${ID}
                            <input type="radio" name="${EventID}" value="${ID.id}" /><br><br>       
                        </li>
    </c:forEach>