功能介绍(图):
功能分析
这个回显修改功能,其实可以看成如下步骤:
-
根据id,查询company
-
然后再将查询到的数据传给这个编辑更新的页面
-
页面拿到后台传来的值,给表单一一赋值(实现回显功能)
-
我们这时,可以对表单中的值进行修改
-
最后保存,实现修改功能
具体各层代码:
TestCompanyService(我这边是测试驱动开发,所以先来一个测试类,测试根据id的查询功能,然后再修改查询到的company中的值,实现更新功能)
@Test
public void test04(){
//回显查询
String id="c795075e-6d90-4e29-b46c-5efb5b015ca5";
Company company = companyService.findById(id);
log.info(company+"");
company.setName("青软实训");
companyService.updateCompany(company);
}
ICompanyService
//根据id查询
Company findById(String id);
//更新company的值
void updateCompany(Company company);
CompanyServiceImpl
@Override
public Company findById(String id) {
//service层调用dao层的findById方法,实现对数据库的操作
Company company = iCompanyDao.findById(id);
return company;
}
ICompanyDao
//根据id查询
Company findById(String id);
//更新company的值
void updateCompany(Company company);
ICompanyDao.xml
<select id="findById" parameterType="string" resultType="company">
select
id,
name ,
expiration_date as expirationDate ,
address,
license_id as licenseId ,
representative ,
phone ,
company_size as companySize ,
industry ,
remarks ,
state,
balance ,
city
from ss_company
where id = #{id}
</select>
<update id="update" parameterType="company">
update ss_company
set name = #{name },
expiration_date= #{expirationDate},
address = #{address },
license_id = #{licenseId },
representative = #{representative },
phone = #{phone },
company_size = #{companySize },
industry = #{industry },
remarks = #{remarks },
state = #{state },
balance = #{balance },
city = #{city }
where id = #{id}
</update>
测试方法TestCompanyService运行效果:
方法测试通过!
接下来就是Controller层的开发,然后套上一一个前端页面,实现回显和赋值
CompanyController
//${path}/company/toEdit.do?id=${item.id}
@RequestMapping(path="/toEdit",method = RequestMethod.GET)
public String toEdit(String id,Model model){
l.info("toEdit id="+id);
Company company=iCompanyService.findById(id);
l.info("toEdit company="+company);
model.addAttribute("company",company);
//走视图解析器,跳转页面
return "company/company-update";
}
前台页面
company-update.jsp
使用el表达式,与 if标签,实现回显。
最终表单提交到action="${path}/company/update.do"
,走到Controller层,然后Controller层调service层调dao层,实现数据修改