Java Spring Boot中JSP下拉框加载MySQL表主键与名称数据问题咨询
JSP下拉列表展示数据解决方案
前置配置
首先在JSP页面顶部引入JSTL核心标签库:
- 传统Java EE环境:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- Jakarta EE(Tomcat 10+)环境:
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
同时确保项目依赖中已经引入JSTL相关jar包,否则标签无法正常解析。
save.jsp页面性别下拉框代码
假设GenderMST实体类的主键字段为genderId,名称字段为genderName,下拉框代码如下:
<select name="genderId"> <option value="">请选择性别</option> <c:forEach items="${genderList}" var="genderItem"> <option value="${genderItem.genderId}" <c:if test="${genderItem.genderId == save-sal.genderId}">selected</c:if>> ${genderItem.genderName} </option> </c:forEach> </select>
代码说明:
- 用
<c:forEach>遍历后端传入的genderList集合,每个选项的value值绑定主键genderId,展示内容绑定名称字段genderName - 编辑场景下会自动匹配
save-sal对象中存储的性别ID,默认选中对应选项 - 请将代码中的
genderId、genderName替换为你实际实体类中对应的字段名,字段名需严格匹配大小写
search.jsp页面称谓下拉框代码
如果需要在搜索页展示称谓下拉,参考写法如下(假设SalutationMST主键为salutationId,名称字段为salutationName):
<select name="salutationId"> <option value="">请选择称谓</option> <c:forEach items="${salutationList}" var="salItem"> <option value="${salItem.salutationId}">${salItem.salutationName}</option> </c:forEach> </select>
问题排查
如果下拉仍无内容,按以下步骤排查:
- debug确认
genderService.getAllGenderMST()、salutationService.getAllSalutationMST()方法返回的集合不为空 - 打开浏览器F12查看页面源码,确认JSTL标签是否被正常解析,如果标签直接输出到页面说明JSTL依赖未正确引入
内容的提问来源于stack exchange,提问作者Sreerag Menon
相关产品推荐
相关产品推荐

