注册 登录
编程论坛 J2EE论坛

jsp 动态 获取

qiuqiu2641847 发布于 2008-11-15 10:59, 1377 次点击
数据库有2个表!!
一个部门表!
一个岗位表!(每个部门都有自己的岗位)
我在jsp中实现一个2级联动,点不同的部门,第2个下拉列表就出来这个部门下的岗位!!!
有没有什么,好的方法解决!!!!
我写的是从数据库把所有的部门下的岗位名字存到一个List 里面。。。。
然后到Jsp页面上在根据选中的部门value值,构成一个2维数组,在用for循环从里面取出来!!不过好麻烦!
有没有简单点的方法!!!
7 回复
#2
huwangvs2008-11-15 12:20
可以用ajax
查出部门,列出来。选择部门后,触发事件,到后台查找相应部门的岗位,列到下拉框里即可。
就不需要循环了。
#3
guoxhvip2008-11-15 17:33
可以在部门类里加个岗位的List属性
这样应该要简单点吧
不过采用楼上的方法也不错
#4
qiuqiu26418472008-11-17 18:43
回复 2# 的帖子
没学过ajax!!!!
#5
qiuqiu26418472008-11-17 18:48
回复 3# 的帖子
在部门类里加个岗位的List属性...那我每次封装部门Bean的时候,是不是要查询2次数据库(根据ID查部门的属性,和属于这个部门的岗位,分别在2个表查),才能把部门类的属性给封装进去.....
#6
qiuqiu26418472008-11-17 19:08
回复 2# 的帖子
能不能给哈ajax实现这个2级联动的代码!!!
#7
kevin872008-11-19 14:07
我觉得javascript也可以实现啊,通过js提交表单到action
//jsp页面javascript
function gotoAction(){
        var opts = document.getElementById("department").options;
        for(var i = 0; i<opts.length;i++) {
            if(opts[i].selected) {
                document.location = "/hms/operator.do?method=getOperatorById&departmentId="+opts[i].value;
                return;
            }
        }
public ActionForward getOperatorById(ActionMapping mapping,
            ActionForm form, HttpServletRequest request,
            HttpServletResponse response) {
                   //动态表单
        DynaActionForm roleForm = (DynaActionForm) form;
                  //获得部门id
        int id = (Integer) roleForm.get("departmentId");
                  //设置该部门员工(分页)
        request.getSession().setAttribute("pageBean", operatorBiz
                .getOperatorByDepartmentId(id));
                  //跳转回该页面(struts-config.xml)
        return mapping.findForward("setting");
    }
不过感觉和你的两个下拉框有点不合适!呵呵~

[[it] 本帖最后由 kevin87 于 2008-11-19 14:11 编辑 [/it]]
#8
yanhaolang2008-11-19 16:46
偶觉得这个 无论用最原始的方法写 还是zenme 写,都不麻烦 呢,循环根本不麻烦。。。写程序本少不了循环。。哈哈
1