我有下一个问题。在JSP中,我写了下一个
<select name='subject'>
<c:forEach items="${subjects.keySet()}" var="subjectID">
<option>${subjects.get(subjectID).getName()}</option>
</c:forEach>
</select>
我从Map获得了值。但我不知道如何获得servlet选择主题的关键
我试图这样做
String subjectID = request.getParameter("subjectID");
由于
我试着去做 但
<select name='subject'>
<c:forEach var="subject" items="${subjects}">
<option id="${subject.key}" value="${subject.value.getName()}">
${subject.value.getName()}
</option>
</c:forEach>
</select>
jsp出错:属性id
的值不正确我需要在jsp上显示名称主题。但是在servlet上获取ID主题
答案 0 :(得分:3)
<select name='subject'>
<c:forEach items="${yourMap}" var="yourEntry">
<option>${yourEntry.key}</option>
</c:forEach>
</select>
或者,如果您想访问密钥的属性。
<select name='subject'>
<c:forEach items="${yourMap}" var="yourEntry">
<option>${yourEntry.key.theProperty}</option>
</c:forEach>
</select>
您可以使用.value
代替.key
访问相关值。
答案 1 :(得分:3)
让我们说,&#34;科目&#34;是你的HashMap
<select name='subject'>
<c:forEach var="subject" items="${subjects}">
<option id="${subject.key}" value="${subject.value.getName()}">${subject.value.getName()}</option>
</c:forEach>
</select>
如果您想将Key
作为值传递,请更改为value="${subject.key}"
。因此,在提交表单时。你的钥匙将被通过。
答案 2 :(得分:1)
<select name='subject'>
<c:forEach items="${subjects}" var="subject" >
<option value="${subject.key}">
${subject.value.getName()}
</option>
</c:forEach>
</select>
在servlet上我做了下一步
Integer subjectIdByName = Integer.valueOf(request.getParameter("subject"));