Javaweb项目-下拉列表显示后台数据库的数据
下面将演示前端下拉列表显示后台数据库中class表的说有班级的名称
环境:
Tomcat-8.5.40
mysql-8.0.13
eclipse-4.9.0
springmvc框架
一、从mysql中获取数据
①编写Class实体类
略。。。
②编写ClassDao用于操作Class表
1 public class ClassDao { 2 public List<Class> getAllClassInfo(){ 3 /* 4 * 存储对象数据的list 5 */ 6 List<Class> classlist = new ArrayList<Class>(); 7 Class cla = new Class(); // 对象模型 8 9 /* 10 * 开始查询数据库 11 */ 12 Connection con = null; // 用于数据库的连接 13 PreparedStatement psta = null; // 用于操作数据库 14 ResultSet res = null; // 查询结果集 15 16 /* 17 * 建立连接 18 */ 19 con = DBUtil.getConnection(); 20 /* 21 * 编写sql查询语句 22 */ 23 String sql = "select * from class"; 24 25 try { 26 27 /* 28 * 预编译 29 */ 30 psta = con.prepareStatement(sql); 31 32 /* 33 * 执行查询语句,返回查询结果 34 */ 35 res = psta.executeQuery(); 36 while (res.next()) { 37 cla = new Class(); // 初始化对象 38 cla.setClass_id(res.getString("class_id")); 39 cla.setClass_name(res.getString("class_name")); 40 cla.setOwner_id(res.getString("owner_id")); 41 classlist.add(cla); // 添加到list的末尾 42 } 43 44 } catch (SQLException e) { 45 e.printStackTrace(); 46 } finally { 47 /* 48 * 关闭数据库 49 */ 50 DBUtil.closeConnection(con, psta, res); 51 } 52 /* 53 * 返回结果 54 */ 55 return classlist; 56 } 57 }
注:查询数据库的代码可以可按照自己的风格编写,本人小白所以代码略繁琐。注意导包,我略去了连接数据库的工具类的代码,直接调用自己写好的。
二、在控制器中调用ClassDao,获取数据返回给视图
@Controller public class IndexController { @RequestMapping("register.jch") public ModelAndView registerindex() { // TODO Auto-generated method stub /* * 存储对象数据的list */ List<Class> classlist = new ArrayList<Class>(); /* * 用于操作class表 */ ClassDao classdao = new ClassDao(); /* * 获取class表的所有信息 */ classlist = classdao.getAllClassInfo(); /* * 返回数据给视图 */ ModelAndView mv = new ModelAndView(); mv.addObject("classlist", classlist); mv.setViewName("home/register/register"); return mv; } }
注:setViewName一定要是自己的视图路径才能将视图返回给用户界面。
三、编写前端jsp代码,获取控制器返回的数据
1 <label for="cla">班 级:</label> 2 <select style="width:240px;" class="cla" id="cla" name="cla"> 3 <option value="">请选择:</option> 4 <c:forEach items="${classlist}" var="cla"> 5 <option value="${cla.class_id}">${cla.class_name}</option> 6 </c:forEach> 7 </select>
注:要想正确执行上述代码还需要导jar包和在jsp页面编写一段声明才能够正确解析
在jsp首部添加一行代码
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
jstl-1.2.jar和taglibs-standard-impl-1.2.5-javadoc.jar
导入这两个jar包。
四、刷新页面查看效果,祝成功!