把页面和数据的合并由 TemplateEngine 来完成
添加了一个失败的测试，contact 的 show 在 id 为空时要重定向到 list
让 contact 的 show 方法在 id 为空的时候的测试通过
重构测试，把 ActionContextMock 独立出来
添加了失败的测试 contactAction 在保存的时候，如果保存成功就返回到list
让测试通过：contactAction 在保存成功的时候会返回到list
重构测试 ContactActionTest
重构单元测试框架，会在每一个测试案例执行前执行setup
添加了失败的测试，contactAction 在保存失败后要返回到 create 页面
让测试通过：contactAction 在保存失败后要返回到 create
补充了测试，当提交的数据中 jobLevel 为空白字符串时的处理情况
修改 DispatchServlet，出错时打印异常栈信息
添加了 contact/create.jsp 以及 jstl 库