SaaS-Export第二天

一. 部署UI资源

1. 将项目页面复制到我的工程目录下

SaaS-Export第二天

 

2. 打开index.jsp发现代码如图:

SaaS-Export第二天

 

 发现如果访问index.jsp会跳转到login.do,所以需要在LoginController中编写代码,让页面跳转到主页面(main.jsp)

SaaS-Export第二天

 

 代码如下(别忘了在类上加上@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

SaaS-Export第二天

 

SaaS-Export第二天

 

 

代码如下:

 

 SaaS-Export第二天

 

 LoginController代码如下:

SaaS-Export第二天

 测试效果:

SaaS-Export第二天

 

 对于iframe标签:

SaaS-Export第二天

 

 二. 添加企业

SaaS-Export第二天

 

 点击新建按钮会跳转到company-add.jsp(显示的数据代码见昨天的代码)

SaaS-Export第二天

 

 进入company-add.jsp中会发现,此表单的action为:

SaaS-Export第二天

 

 

 

 所以需要在CompanyController处理此请求:

/**
     * 进入添加页面
     * 功能入口: 企业列表点击新建
     * 请求地址:http:localhost:8080/company/toAdd.do
     * 响应地址: /WEB-INF/pages/company/company-add.jsp
     *
     * @return
     */
    @RequestMapping("toAdd")
    public String toAdd() {
        return "company/company-add";
    }

测试结果:

SaaS-Export第二天

 

 

 成功跳转到添加页面

查看company-add.jsp页面发现最后表单的提交地址为:

SaaS-Export第二天

 

 

 在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>

页面测试结果:

SaaS-Export第二天

 

 

 

企业修改

SaaS-Export第二天

 

 

 查看company-list.jsp页面发现:

SaaS-Export第二天

 

 

 在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>

页面测试结果:

SaaS-Export第二天

 

 

 保存修改操作在上面已经做了!

删除企业

SaaS-Export第二天

 

 

 查看company-list.jsp页面代码发现:

SaaS-Export第二天

 

 

 SaaS-Export第二天

 

 

 

在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>
上一篇:Win 使用终端创建mysql数据库及使用(5)


下一篇:Codeforces Round #588 (Div. 1) C. Konrad and Company Evaluation