博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入实践Spring Boot3.2.3 修改控制器
阅读量:6004 次
发布时间:2019-06-20

本文共 1356 字,大约阅读时间需要 4 分钟。

3.2.3 修改控制器

若要实现对电影的修改及保存操作,需要先将电影的数据展示在视图界面上,然后接收界面的操作,调用数据管理模块将更改的数据保存至数据库中,如代码清单3-6所示。其中,为了简化设计,将剧照中的图片文件和电影角色名称做了预定义处理。修改数据时,由于从界面传回的电影对象中,丢失了其角色关系的数据(这是OGM的缺点),所以再次查询一次数据库,以取得一个电影的完整数据,然后再执行修改的操作。

代码清单3-6 修改电影控制器

@RequestMapping(value="/edit/{id}")

    public ModelAndView update(ModelMap model, @PathVariable Long id){

        Movie movie = movieRepository.findOne(id);

        String[] files = {"/images/movie/西游记.jpg","/images/movie/西游记续集.jpg"};

        String[] rolelist = {"唐僧","孙悟空","猪八戒","沙僧"};

        Iterable<Actor> actors = actorRepository.findAll();

 

        model.addAttribute("files",files);

        model.addAttribute("rolelist",rolelist);

        model.addAttribute("movie",movie);

        model.addAttribute("actors",actors);

 

        return new ModelAndView("movie/edit");

    }

 

    @RequestMapping(method = RequestMethod.POST, value="/update")

    public String update(Movie movie, HttpServletRequest request) throws Exception{

        String rolename = request.getParameter("rolename");

        String actorid = request.getParameter("actorid");

 

        Movie old = movieRepository.findOne(movie.getId());

        old.setName(movie.getName());

        old.setPhoto(movie.getPhoto());

        old.setCreateDate(movie.getCreateDate());

 

        if(!StringUtils.isEmpty(rolename) && !StringUtils.isEmpty(actorid)) {

            Actor actor = actorRepository.findOne(new Long(actorid));

            old.addRole(actor, rolename);

        }

        movieRepository.save(old);

        logger.info("修改->ID="+old.getId());

        return "1";

}

转载地址:http://mpcmx.baihongyu.com/

你可能感兴趣的文章
VIM编辑器
查看>>
IE主页被篡改 地址框变灰
查看>>
linux上架设l2tp+ipsec ***服务器
查看>>
Facebook和用户界面会如何扭曲你说的话
查看>>
安卓混合开发之Cordova,NativeWebView两种实现
查看>>
桶排序
查看>>
石化数字化交付
查看>>
如何用windows Live writer 撰写blog
查看>>
RHEL6入门系列之十九,硬盘分区与格式化
查看>>
Linux下升级 OpenSSH
查看>>
标准功能模块组件 -- 名片管理组件,C\S 版本的标准用例程序,可以参考权限实现方法...
查看>>
zygote进程图
查看>>
ldap快速配置
查看>>
docker之docker-machine用法
查看>>
IIS 7启用static JSON文件能POST方法
查看>>
P5205 【模板】多项式开根
查看>>
微博mini for Windows Phone 8 开发那些事
查看>>
redis文章索引
查看>>
OpenSSH利用处理畸形长度密码造成的时间差,枚举系统用户(CVE-2016-6210)
查看>>
Javascript回调函数
查看>>