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

  注:查询数据库的代码可以可按照自己的风格编写,本人小白所以代码略繁琐。注意导包,我略去了连接数据库的工具类的代码,直接调用自己写好的。

二、在控制器中调用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;
    }

}
IndexControlle

  注: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包。

四、刷新页面查看效果,祝成功!

 

posted @ 2019-07-04 19:07  小废柴的成长之路  阅读(6068)  评论(0编辑  收藏  举报