一. 部署UI资源
1. 将项目页面复制到我的工程目录下
2. 打开index.jsp发现代码如图:
发现如果访问index.jsp会跳转到login.do,所以需要在LoginController中编写代码,让页面跳转到主页面(main.jsp)
代码如下(别忘了在类上加上@Controller注解):
@Controller public class LoginController { /** * 执行流程 * 1.访问首页 * http:localhost:8080/index.jsp * 2. index.jsp * location.href = "login.do" * 3. 转发到main.jsp */ @RequestMapping("/login") public String login() { // 目前默认登录成功跳转到主页main.jsp return "home/main"; } }
页面将会跳转到main.jsp
代码如下:
LoginController代码如下:
测试效果:
对于iframe标签:
二. 添加企业
点击新建按钮会跳转到company-add.jsp(显示的数据代码见昨天的代码)
进入company-add.jsp中会发现,此表单的action为:
所以需要在CompanyController处理此请求:
/** * 进入添加页面 * 功能入口: 企业列表点击新建 * 请求地址:http:localhost:8080/company/toAdd.do * 响应地址: /WEB-INF/pages/company/company-add.jsp * * @return */ @RequestMapping("toAdd") public String toAdd() { return "company/company-add"; }
测试结果:
成功跳转到添加页面
查看company-add.jsp页面发现最后表单的提交地址为:
在CompanyController中处理请求:
/** * 添加企业/修改企业 * * @param company * @return */ @RequestMapping("edit") public String edit(Company company) { // 根据id判断是添加还是修改 if (StringUtils.isEmpty(company.getId())) { // 如果id是null companyService.save(company); } else { // 如果id不是null companyService.update(company); } // 添加成功,重定向到list界面 return "redirect:/company/list.do"; }
在此代码中处理了两个请求,一个是添加企业,另一个是修改企业(点击编辑按钮之后的保存按钮)
根据是否请求是否有id来判断是哪个请求,添加企业是没有id的,但是修改企业是有id的。最后在service和dao中编写方法,以及在mapper映射文件中配置
CompanyService代码:
/** * 保存用户 * @param company */ void save(Company company); /** * 修改用户 * @param company */ void update(Company company);
CompanyServiceImpl代码:
/** * 保存用户 * @param company */ @Override public void save(Company company) { // 设置主键值 company.setId(UUID.randomUUID().toString()); companyDao.save(company); } /** * 修改用户 * @param company */ @Override public void update(Company company) { companyDao.update(company); }
其中save()方法中要设置主键存入数据库,因为如果不设置主键,第一次添加可以,但是第二次不行,因为主键会重复
所以直接在save()中设置主键
UUID.randomUUID()可以得到一个32位的全球唯一随机码
dao接口代码:
/** * 保存用户 * @param company */ void save(Company company); /** * 修改用户 * @param company */ void update(Company company);
dao.xml配置文件代码:
<!--保存企业--> <insert id="save"> insert into ss_company ( expiration_date, id, name, address, license_id, representative, phone, company_size, industry, remarks, state, balance, city ) VALUES ( #{expirationDate}, #{id}, #{name}, #{address}, #{licenseId}, #{representative}, #{phone}, #{companySize}, #{industry}, #{remarks}, #{state}, #{balance}, #{city} ) </insert> <!--更新企业--> <update id="update"> update ss_company set expiration_date=#{expirationDate}, name=#{name}, 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>
页面测试结果:
企业修改
查看company-list.jsp页面发现:
在CompanyController中处理请求:
/** * 进入修改页面 * 功能入口:company-list.jsp 列表点击编辑 * 请求地址: http://localhost:8080/company/toUpdate.do * 请求参数:id 修改企业的id * 响应地址: /WEB-INF/pages/company/company-update.jsp */ @RequestMapping("toUpdate") public String toUpdate(String id, Model model) { // 根据企业id查询 Company company = companyService.findById(id); // 保存 model.addAttribute("company", company); // 转发 return "company/company-update"; }
service代码:
/** * 根据企业id查询企业 * @param id * @return */ Company findById(String id);
CompanyServiceImpl代码:
/** * 根据企业id查询企业 * @param id * @return */ @Override public Company findById(String id) { return companyDao.findById(id); }
dao代码:
/** * 根据企业id查询企业 * @param id * @return */ Company findById(String id);
mapper映射文件代码:
<!--根据企业id查询企业--> <select id="findById" resultMap="BaseResultMap"> SELECT * FROM ss_company WHERE id=#{id} </select>
页面测试结果:
保存修改操作在上面已经做了!
删除企业
查看company-list.jsp页面代码发现:
在CompanyController中处理请求:
/** * 删除企业 * 功能入口: company-list.jsp * 请求地址:http://localhost:8080/company/delete.do?id=............ */ @RequestMapping("delete") public String delete(String id) { // 根据id删除企业 companyService.delete(id); return "redirect:/company/list.do"; }
service代码:
/** * 根据id删除企业 * @param id */ void delete(String id);
CompanyServiceImpl代码:
/** * 根据id删除企业 * @param id */ @Override public void delete(String id) { companyDao.delete(id); }
dao层代码:
/** * 根据id删除企业 * @param id */ void delete(String id);
mapper映射文件代码:
<!--根据id删除企业--> <delete id="delete"> DELETE FROM ss_company WHERE id=#{id} </delete>