下面的下拉框是根据数据库的数据进行绑定的,而不是在JSP中直接编写的。(文章有些粗糙,但源码都有。)
先看下效果
先说一下流程(个人认为):在编写Java程序中,首先是通过JSP用户界面将需要的条件信息传递到servlet后台,servlet再通过service服务层,service服务层在传递信息到Dao层。Dao层就连接数据库将查询数据出来,再返回到vo(po)实体类中保存数据,然后在service调用vo实体类中的数据返回给servlet成。Servlet再返回到JSP中。
下面看JSP页面的代码
这个是样式代码,主要有id与name就可以了
这个是JavaScript的代码,红框中的才是对应的功能代码,因为我这个绑定下拉框是点击后在另外一个页面绑定的。刚好这个事件是是同时可以用上的,然后我就把这个事件放在这里了。
解释一下代码:
使用post提交(${ctx}是EL标签的用法,因为Java中需要用到的是绝对路径。)到对应的servlet方法中。为什么拼接fun呢?,因为post是提交是提交到servlet中的dopost方法中的。fun是为了判断servlet方法中是否有SelectComboBox方法。
EL标签:
function(date):数据的参数。
这个就是给下拉框添加提示。Append就是添加的意思。(但是这句代码,在最终的结果没有效果。可能是被覆盖掉了,唯一能够证实的是我太菜了)
JSON.parse的作用:将 JavaScript 对象表示法 (JSON) 字符串转换为对象。
eval() 的作用:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
下面是后台代码
这个是添加进来的包
添加包到项目中后,就可以在servlet层导包了。如果没有就添加,就不能在项目中导包使用。
下面是servlet层的代码。
VO(po)层实体类代码,因为我们只需要用到要到ID以及name两个字段就够了,所以就写两个就可以了
Common公共层
公共层的下拉框Dao,因为一个项目中不只有一个下拉框要绑定,所以我给了一个公共的下拉框接口
Common公共层
公共层的下拉框service接口
Dao的接口层
Dao的实现层。
Service层接口代码
实现Service接口层代码