第一部分:修改的回显功能
------------------------------------后端回显----------------------------------------------------------------------------------------
interface层
/**
* 根据ID获取实体
* @param id
* @return
*/
public Specification findOne(Long id);
service实现层
@Override
public Specification findOne(Long id){
Specification specification = new Specification();
//查询规则
TbSpecification tbSpecification = specificationMapper.selectByPrimaryKey(id);
specification.setSpecification(tbSpecification);
//查询规则细节表
TbSpecificationOptionExample example = new TbSpecificationOptionExample();
TbSpecificationOptionExample.Criteria criteria = example.createCriteria();
criteria.andSpecIdEqualTo(id);//外键条件
List<TbSpecificationOption> tbSpecificationOptions = specificationOptionMapper.selectByExample(example);
specification.setSpecificationOptionList(tbSpecificationOptions);
return specification;
}
controller层
/**
* 获取实体
* @param id
* @return
*/
@RequestMapping("/findOne")
public Specification findOne(Long id){
System.out.println(specificationService.findOne(id));
return specificationService.findOne(id);
}
------------------------------------前端回显----------------------------------------------------------------------------------------
前端controller层
//查询实体(回显)
$scope.findOne=function(id){
specificationService.findOne(id).success(
function(response){
$scope.entity= response;
}
);
}
页面层
<tbody>
<tr ng-repeat="entity in list">
<td><input type="checkbox" ></td>
<td>{{entity.id}}</td>
<td>{{entity.specName}}</td>
<td class="text-center">
<button type="button" class="btn bg-olive btn-xs" data-toggle="modal" data-target="#editModal" ng-click="findOne(entity.id)">修改</button>
</td>
</tr>
</tbody>
第二部分:修改功能
----------------------------------后端修改---------------------------------------------------------------------------
这里修改的思路是将之前的删除,然后将新的提交到后台,等于删除和新增功能和起来是修改功能
接口
/**
* 修改
*/
public void update(Specification specification);
接口的实现类
@Override
public void update(Specification specification){
//首先删除规则表
specificationMapper.deleteByPrimaryKey(specification.getSpecification().getId());
//然后将新的修改后规则表放add上去
//再删除另一张规则详情表,
TbSpecificationOptionExample example = new TbSpecificationOptionExample();
TbSpecificationOptionExample.Criteria criteria = example.createCriteria();
criteria.andSpecIdEqualTo(specification.getSpecification().getId());
specificationOptionMapper.deleteByExample(example);//根据条件删除外键
List<TbSpecificationOption> specificationOptionList = specification.getSpecificationOptionList();
for (TbSpecificationOption tbSpecificationOption : specificationOptionList) {
tbSpecificationOption.setSpecId(specification.getSpecification().getId());
specificationOptionMapper.insert(tbSpecificationOption);
}
}
controller层
/**
* 修改
* @param specification
* @return
*/
@RequestMapping("/update")
public Result update(@RequestBody Specification specification){
System.out.println(specification);
try {
specificationService.update(specification);
return new Result(true, "修改成功");
} catch (Exception e) {
e.printStackTrace();
return new Result(false, "修改失败");
}
}
----------------------------------前端修改---------------------------------------------------------------------------
前端的controller
//保存
$scope.save=function(){
var serviceObject;//服务层对象
if($scope.entity.specification.id!=null){//如果有ID
serviceObject=specificationService.update( $scope.entity ); //修改
}else{
serviceObject=specificationService.add( $scope.entity );//增加
}
serviceObject.success(
function(response){
if(response.success){
//重新查询
$scope.reloadList();//重新加载
}else{
alert(response.message);
}
}
);
}
页面
<button class="btn btn-success" data-dismiss="modal" aria-hidden="true" ng-click="save()">保存</button>