Java 如何在JSP上的中放置映射键
我还有一个问题。接下来我用JSP编写了Java 如何在JSP上的中放置映射键,java,jsp,servlets,map,jstl,Java,Jsp,Servlets,Map,Jstl,我还有一个问题。接下来我用JSP编写了 <select name='subject'> <c:forEach items="${subjects.keySet()}" var="subjectID"> <option>${subjects.get(subjectID).getName()}</option> </c:forEach>
<select name='subject'>
<c:forEach items="${subjects.keySet()}" var="subjectID">
<option>${subjects.get(subjectID).getName()}</option>
</c:forEach>
</select>
jsp错误:属性id的值不正确
我需要在jsp上显示名称主题。但是关于servlet获取ID主题
<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来访问相关的值。比如说,subjects是您的HashMap
若要将键作为值传递,则在提交表单时更改为value=${subject.Key}。您的r键将被传递。将其更改为:value=${subject.value.getName}到value=${subject.value.name}。还有-您的密钥的值和类型是什么?很可能,您希望在键上有一些属性,而不是键。请看下面我的答案。@BrandonV是的,我对Hardik Mishra的答案做了一些修改。但是我没有足够的声誉这就是为什么我不能表现出我的决心
<select name='subject'>
<c:forEach items="${subjects}" var="subject" >
<option value="${subject.key}">
${subject.value.getName()}
</option>
</c:forEach>
</select>
<select name='subject'>
<c:forEach var="subject" items="${subjects}">
<option id="${subject.key}" value="${subject.value.getName()}">${subject.value.getName()}</option>
</c:forEach>
</select>
<select name='subject'>
<c:forEach items="${subjects}" var="subject" >
<option value="${subject.key}">
${subject.value.getName()}
</option>
</c:forEach>
</select>
Integer subjectIdByName = Integer.valueOf(request.getParameter("subject"));