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

本文介绍了如何在Java中使用Select标签绑定下拉框,并根据选择的下拉框内容动态回填表格数据。涉及内容包括JSP、Servlet、DAO、POJO类的使用,以及JavaScript插件SharingPlugins.js的下拉框绑定方法。通过选择下拉框,调用后台服务获取对应数据,实现页面的动态更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();

### 如何在 uView 1.0 中实现下拉选择组件的值回填功能 为了实现在 `uView` 1.0 下拉选择组件中的值回填功能,可以利用 Vue 的双向绑定特性以及 `uView` 提供的相关 API 和属性来完成这一操作。下面是一个具体的例子说明如何设置初始选中项并更新其状态。 #### 使用模板部分定义结构 通过 `<template>` 定义页面布局,在其中加入 `u-select` 组件用于创建可交互的选择器,并设定好选项列表作为数据源[^1]: ```html <template> <view class="content"> <!-- 显示当前选中的值 --> <text>{{ selectedValue }}</text> <!-- 调用 uSelect 组件 --> <u-select v-model="showPicker" :list="optionsList" @confirm="onConfirm"></u-select> <!-- 触发按钮 --> <button type="primary" @click="togglePicker">点击选择</button> </view> </template> ``` #### 初始化脚本逻辑 在 `<script>` 部分初始化必要的变量和方法,包括显示/隐藏选择器的状态控制、预设默认值(如果有的话),还有处理确认事件的方法: ```javascript <script> export default { data() { return { showPicker: false, // 控制选择器显隐 optionsList: [], // 存储可供选择的数据集合 selectedValue: '请选择', // 当前选定的内容,默认为空字符串或其他提示语句 }; }, onLoad() { this.loadOptions(); // 页面加载时获取或准备选项列表 this.fillDefaultValue(); // 如果有需要的话填充默认值 }, methods: { loadOptions() { // 假定这里是从服务器请求或者静态配置得到的选项数组 this.optionsList = [ { value: 'option1', label: '第一个选项' }, { value: 'option2', label: '第二个选项' } ]; }, fillDefaultValue() { const defaultValueKey = uni.getStorageSync('defaultOption') || ''; // 或者其他方式读取存储好的默认键名 let foundItem; if (defaultValueKey !== '') { foundItem = this.optionsList.find(item => item.value === defaultValueKey); if (foundItem) { this.selectedValue = foundItem.label; // 更新视图上的文本 } } }, togglePicker() { this.showPicker = !this.showPicker; }, onConfirm(e) { console.log(`选择了 ${JSON.stringify(e.detail)}`); this.selectedValue = e.detail.map(({label})=>label).join(', '); this.showPicker = false; // 可能还需要保存这个新选择到本地或者其他地方以便下次启动应用能够记住用户的偏好 uni.setStorage({ key: "selectedOption", data: JSON.stringify(e.detail), }); } } }; </script> ``` #### 添加样式调整界面效果 最后可以在 `<style>` 标签内编写 CSS 来美化 UI 元素,不过这部分不是重点因此省略具体代码。 以上就是基于 `uView` 1.0 实现下拉菜单自动回填的一个简单实例。需要注意的是实际项目里可能涉及到更复杂的业务需求比如异步加载远程资源等,则需相应扩展上述基础框架下的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值