首先最最重要的就是在前台页面页面头部写上
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
因为我要用到foreach。
其次就是在controller中,即action中从数据库获取你想要的数据封装成list
try {
superClassList = checkElementClassJamieDelegate.getAllSuperClassList(model);
} catch (SysException e) {
e.printStackTrace();
} catch (AppException e) {
e.printStackTrace();
}
request.setAttribute("superClass", superClassList);
类似于这样 用request.setAttribute("参数名",数据列表)把list传到前台
然后前台页面就这样写就可以了
id和name是这个list的类型的属性,也可以获取其他的属性
<select name="a" id="a"><c:forEach var = "aa" items="${superClass}">
<option value="${aa.id}">${aa.name}</option>
</c:forEach>
</select>
上面就实现了下拉框的项值从后台数据库中获取的效果
可用于页面中的增加 时让用户选中传给数据库
下面在说一下 页面中的更新时 下拉框默认选中本列的值
依旧是 需要用到jstl表达式
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
然后在页面中你想插入下拉框的地方写上
//m是页面中获取的实体,sc是索引
<select id="sci" name="sci" >
<c:forEach var = "sc" items="${superClass}">
<option value="${sc.id}" <c:if test="${sc.id==m.id }"> selected="selected"</c:if>>${sc.name}</option>
</c:forEach>
</select>
如果从后台获取到下拉框的数据中某一条和用户选中的这一条的id属性相同,那么这条数据的名称name就默认选中
ok 就这样 我在不断的努力 哪怕一点点的改变都是我所在乎的
有问题欢迎和我讨论呦~