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

1.action

//新建存取参数的map对象
Map param = new HashMap();
//先清除一下,防止有其他遗留参数
param.clear();
//status为数据表中的状态字段,为0表示没有被操作过
param.put("status", "0");
//现在要查询码表表将在select中要显示的数据取出来,codeType是码表的字段,orderSource是码表对应字段的值
param.put("codeType", "orderSource");
//SysCode是码表对应的Model,通过Mybatis代码生成器生成的方法getByParam将select的所有值查出来
List 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就为码表中的数字那个字段

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

 

其中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:

  

  AND sc.CodeValue = #{orderSource}

 

 

 

 

 

 


 

你可能感兴趣的:(SSM)