发表于: 2017-11-02 22:33:50

1 937


今日完成的事情:

今天把任务二结束了。上次把ssm框架搭建完成,但是没有一点restful风格,今天把restful风格加上去了,但是完成完成的不是很好。

今天修改过的controller层,对应的增删改查操作分别对应了get,post,delete,put四种方法:

//所有用户信息
@RequestMapping(value = "/user",method = RequestMethod.GET)
public String listUser(Model model) {
   List<User> list = userService.queryAllUser();
   model.addAttribute("list", list);
   logger.info("所有用户信息");
   return "listUser";
}

展示所有用户信息,用的get方法。

//跳转到新增用户页面
@RequestMapping(value = "forAddUser",method = RequestMethod.GET)
public String addUserForm(){
   logger.info("新增用户");
    return "addUser";
}
//添加用户页面
@RequestMapping(value = "/user",method = RequestMethod.POST)
public String add(Model model,User user) {
   logger.info(user.toString());
   userService.add(user);
   logger.info("添加用户成功");
   model.addAttribute("user", user);
   return "redirect:/user";
}

新增用户,这里用了一个跳转增加用户信息页面的方法,增加用户信息页面用的post方法。

//跳转到修改用户页面
@RequestMapping(value = "forUpdateUser",method = RequestMethod.GET)
public String updateUserForm(){
   return "updateUser";
}
//修改用户页面
@RequestMapping(value = "/user",method = RequestMethod.PUT)
@ResponseBody
public String update(User user){
   logger.info(user.toString());
   if(userService.queryUserById(user.getId())!=null){
       userService.update(user);
   }else {
      return "error";
   }
   return "redirect:/user";
}

修改用户信息,这里也用了一个跳转到修改用户页面的方法,修改用户信息用的是put方法。

//删除用户
@RequestMapping(value = "/user/{id}",method = RequestMethod.DELETE)
public String deleteUser(@PathVariable int id) {
       logger.info("要删除用户ID为:"+id);
       userService.delete(id);
       logger.info("删除用户成功");
       return "redirect:/user";
}

删除用户,不用跳转页面,直接用的delete方法。

在springMVC中是支持put和delete方法的,但是HTML不支持。需要在web.xml中配置一个过滤器,过滤隐藏域。

<filter>
 <filter-name>HiddenHttpMethodFilter</filter-name>
 <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
 <init-param>
   <param-name>methodParam</param-name>
   <param-value>_method</param-value>
 </init-param>
</filter>
<filter-mapping>
 <filter-name>HiddenHttpMethodFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

同时jsp页面的配置:

<form method="post" action="${ctx}/user/${u.id}">
   <input type="hidden" name="_method" value="DELETE">
   <input type="submit" value="删除"/>
</form>

用post方法转换成delete方法。

同理:

<form action="${ctx}/user" method="post">
   <input type="hidden" name="_method" value="PUT">

用post方法转换成put方法。

这是两个跳转页面的form表头:

<form method="get" action="${ctx}/forAddUser">
   <input type="submit" value="新增用户"/>
</form>
<form method="get" action="${ctx}/forUpdateUser">
   <input type="submit" value="修改用户"/>
</form>

也就是这两个跳转页面让我的restful有点不完美。

最终的页面展示:

点击新增用户和修改用户会跳转到新增用户和修改用户页面:

随便添加一名用户,打印日志如下:

任务二算是告一段落了,但是还是有好多知识以后要慢慢学习,慢慢消化。

明日计划的事情:

完善一下任务二,开始任务三。

遇到的困难:

配置隐藏域过滤器,百度解决。

收获:

通过任务二,自己会搭建ssm框架,然后对于过滤器,监听器的配置也算是搞清楚了一些。

任务开始时间:2017/10/18

预计完成时间:2017/10/25

延期:延期8天

延期原因:请假5天,自己底子薄弱,任务二进行的比较满。11/2号完成任务二。

下次预计完成时间:2017/11/2

完成时间:2017/11/2

禅道:http://task.ptteng.com/zentao/project-task.html



返回列表 返回列表
评论

    分享到