Java中使用Select标签绑定下拉框以及通过选中下拉框内容动态回填

Java中绑定下拉框以及通过选中下拉框内容动态回填

 

MySql里数据库里的表格

思路:选择下拉框内容,动态回填旁边的表格数据:

效果图:

注意看路径,别把路径写错了;

JDBC的配置前面的博客里有说到,在这里就不写了。

下面是代码部分:

主要组成部分:一个servlet、一个Jsp、一个po类、一个dao、一个dao实现类、一个service、一个service实现类;(如果只是用来做效果的话,service和service实现类可以不写)

JSP代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<c:set value="${pageContext.request.contextPath}" scope="page" var="ctx"></c:set>



<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>My JSP 'test.jsp' starting page</title>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

   

<script type="text/javascript" src="${ctx}/Content/js/jquery-1.12.4.js"></script>

<script type="text/javascript" src="${ctx}/Content/js/SharingPlugins.js"></script>

  </head>

  <body>

    <div class="col-lg-1 col-md-1 col-sm-1 text-right">

           <span>始发地:</span>

       </div>

       <div class="col-lg-2 col-md-2 col-sm-2 reset">

           <select id="addressone" name="id" style="height:28px;width:100px;"></select>

       <input id="AddressAbbrone"  value=""   style="width: 40px;" />

       </div>

       <script type="text/javascript">

       appendOption("addressone", "${ctx}/servlet/DropDownBoxServlet?type=address");   

       //下拉框回填

       $("#addressone").change(

              function() {

                  var city = $("#addressone").val();

                  $.post("${ctx}/servlet/DropDownBoxServlet?type=addressAbbr&id="

                         + city, function(data) {

                     $("#AddressAbbrone").val(data);

                  });

              });

       </script>

  </body>

</html>

记得加上这两句代码:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<c:set value="${pageContext.request.contextPath}" scope="page" var="ctx"></c:set>

封装的SharingPlugins.js插件里的下拉框部分:

//下拉框绑定

    function appendOpion(id, url) {

              $.getJSON(url, function(data) {

                  $("#" + id).empty();

                  $("#" + id).append(

                         "<option value=" + 0 + "> " + "——请选择—— "

                                + "</option>");

                  $.each(data, function(i) {

                     $("#" + id).append(

                            '<option value="' + data[i].id + '">'

                                   + data[i].name + '</option>')

                  })

              })

           }

可以将这段代码封装到java文件中,然后引用就好啦!记住这里面封装的是id和name,所以在封装po类的时候也需要把对应的参数名称设置成name。可以作为一个专门的下拉框工具类来使用。

po类的内容:我这里在vo类里面,因为这个类我是专门作为工具类来使用的。

package com.xmj.vo;

 

import java.io.Serializable;

 

public class NameVo  implements Serializable{

   

    private static final long serialVersionUID = 1L;

    private int id;

    private String name;//封装的js下拉框插件中的名称是name,所以要封装一个name来接收各个下拉框的值

 

    public int getId() {

       return id;

    }

 

    public void setId(int id) {

       this.id = id;

    }

 

    public String getName() {

       return name;

    }

 

    public void setName(String name) {

       this.name = name;

    }

}

Dao类代码:

package com.xmj.dao;

 

import java.util.List;

 

import com.xmj.vo.NameVo;

 

public interface IDropDownBoxDao {

    public String AddressAbbr(int id);// 根据id查询一个字段;

 

    public List<NameVo> getAddressName();// 查询地区名称

}

 

DaoImpl代码:

package com.xmj.dao.impl;

 

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

 

import com.xmj.dao.IDropDownBoxDao;

import com.xmj.po.AddressPo;

import com.xmj.util.DBUtil;

import com.xmj.vo.NameVo;

 

public class DropDownBoxImpl implements IDropDownBoxDao {

    private Connection con = null;// 引用的是java.sql类型,不要引错了

    private PreparedStatement ps = null;

    private ResultSet rs = null;

 

    @Override

    public List<NameVo> getAddressName() {

       List<NameVo> list = new ArrayList<NameVo>();

       String sql = "select * from address";

       con = DBUtil.getConnection();

       try {

           ps = con.prepareStatement(sql);

           rs = ps.executeQuery();

           while (rs.next()) {

              NameVo f = new NameVo();

              f.setId(rs.getInt("id"));

              f.setName(rs.getString("addressName"));

       /*     f.setAddressSpell(rs.getString("addressSpell"));

              f.setAddressSpellAddr(rs.getString("addressSpellAddr"));*/

              list.add(f);

 

           }

       } catch (SQLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值