SSM-查询数据库获取下拉框的值并作为查询的筛选条件

本文详细介绍了如何使用MyBatis通过参数传递实现数据库查询,并在JSP页面上动态绑定下拉框选项,展示了从Action层到JSP页面再到数据库查询的完整流程。

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

1.action

//新建存取参数的map对象
Map<String, Object> param = new HashMap<String,Object>();
//先清除一下,防止有其他遗留参数
param.clear();
//status为数据表中的状态字段,为0表示没有被操作过
param.put("status", "0");
//现在要查询码表表将在select中要显示的数据取出来,codeType是码表的字段,orderSource是码表对应字段的值
param.put("codeType", "orderSource");
//SysCode是码表对应的Model,通过Mybatis代码生成器生成的方法getByParam将select的所有值查出来
List<SysCode> orderStatusList = codeService.getByParam(param);
//modelAndView
mv = new ModelAndView();
//添加Object--页面正常要显示的数据
mv.addObject(ModelAndViewConstants.PAGE_RESULT, pageResult);
//添加Object--下拉框查询  select 要显示的数据
mv.addObject("orderStatusList", orderStatusList);
//添加view,跳到jsp页面,路径是在常量类中存放
mv.setViewName(ModelAndViewConstants.BUS_TRANSACTION_REPORT_MAIN);

2.jsp页面

注:

items="${orderStatusList} 是action传过来要在select显示的值

在循环里,如果码表中的数字与要查询的modedl的字段相等

那么这个option的value就为码表中的数字那个字段

要显示的就是对应的汉字的字段

<label>订单来源:
 <select data-toggle="selectpicker" name="orderSource">
  <option value="">全部</option>
   <c:forEach items="${orderStatusList}" var="orderStatus">
    <c:choose>< BR>     <c:when   test="${orderStatus.codeValue==pageResult.ext.orderSource}">
                  <option value="${orderStatus.codeValue}" selected >
                             ${orderStatus.codeName }
                         </option>
     </c:when>
     <c:otherwise>
      <option value="${orderStatus.codeValue}" >
                             ${orderStatus.codeName }
                        </option>
     </c:otherwise>
    </c:choose>    
   </c:forEach>
 </select>
</label> 

其中select的name属性在表单提交后作为获取值的标识,值就是被选中的option的value属性。

点击表单提交到action


3.提交到action

 public ModelAndView tolist(String orderSource){

在ModelAndView中通过参数绑定获取到orderSource所对应的值。

进行判空并存放查询数据的参数:

if(orderSource!=null&&!"".equals(orderSource)){

    //将获取的数据存放起来,作为查询的参数
     pageResult.getParam().put("orderSource", orderSource);
    pageResult.getExt().put("orderSource", orderSource);
   }

然后执行查询:

依次经过service  serviceImpl  dao 层来到mapper:

  

 <if test="orderSource != null"> AND sc.CodeValue = #{orderSource}</if>

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值