SSM实现根据后台控制禁用select

场景

在对某条记录进行编辑时,如果是测试签约,则可以再进行编辑,更改为正式签约。

但是如果是正式签约,则不能再更改为测试签约。

效果

代码实现

1.前端BJUI框架点击编辑按钮时,将当前选中的ID传到action

 
      
      编辑
      

2.来到后台action,对应上面提交的地址:/sys/cooperativePartnersManageAction/toEdit

@RequestMapping(value="/toEdit")
 public ModelAndView toEdit(Integer id) {
  ModelAndView mv = null;
  try {
   //根据ID先查询要编辑的数据
   SysPartners partner = this.sysPartnersService.getByPrimaryKey(id);
   //获取签约状态,此处是通过关联码表来实现
   Map param = new HashMap();
   //0 表示正常数据
   param.put("status", "0");
   param.put("codeType", "contractStatus");
   //根据参数将相关码表内容查询出来
   List contractStatus = codeService.getByParam(param);
   mv = new ModelAndView();
   //传递签约状态
   mv.addObject("contractStatus", contractStatus);
   //传递操作类型,这里是编辑操作
   mv.addObject(ModelAndViewConstants.OPERATION_KEY,ModelAndViewConstants.OPERATION_VALUE_EDIT);
   //jsp页面要显示的标题title
   mv.addObject(ModelAndViewConstants.TITLE_KEY, "修改合作商户信息");
   //将查询到的实体Model类传递
   mv.addObject(ModelAndViewConstants.PARTMER, partner);
   //跳转到编辑界面
   mv.setViewName(ModelAndViewConstants.PARTNER_EDIT_VIEW);
  }
  catch(Exception ex) {
   LogService.getInstance(this).error("进入客户编辑失败:" + ex.getMessage(), ex);
   mv = new ModelAndView(ModelAndViewConstants.ERROR_VIEW);
  }
  return mv;
 }

码表:

SSM实现根据后台控制禁用select_第1张图片

3.然后来到编辑界面


     
     
     

注:

通过forEach循环标签,将关联码表查询到的选项全部显示。

name="contractStatus",属性与传过来的实体类的属性相对应。

items= "${contractStatus}"用来接收从码表传递的参数,是通过上面action的:

 //传递签约状态
  mv.addObject("contractStatus", contractStatus);

来传递的。

distabled属性以及selected属性的显示使用选择表达式来实现。

你可能感兴趣的:(ssm,SSM)