我是靠谱客的博主 故意鸭子,最近开发中收集的这篇文章主要介绍SSM开发书评网25:写短评;一:需求分析;二:正式开发;,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

说明:

(1)本篇博客开发内容:前面我们实现了会员注册和登录功能;那么会员登录后,就开始介绍与会员交互有关的功能;本篇博客介绍第二个功能【为图书写短评】;

(2)本篇博客的一个需要强调的【开发技巧】:比如我们Service层的一个方法,这个方法是向数据表插入数据的方法;虽然这个方法不是查询方法,但是这个方法最好还是返回我们插入的实体对象;万一有的地方,调用这个插入方法时,想得到插入的对象呐,是吧。。。。。这样做,让程序的更给力,更全面;

目录

一:需求分析;

二:正式开发;

1.在detail.ftl前端编写:点击【写短评】按钮后,在页面上弹出一个写短评的对话框;

2.在MemberService接口中,定义发布新短评的方法:evaluate()方法;

3.在MemberServiceImpl实现类中,实现发布新短评的方法:evaluate()方法;

4.在MemberController类中,增加前后端交互的方法:evaluate()方法;(Controller中的方法可以随便起,但为了见名知意,也起做evaluate了)

5.在detail.ftl前端编写:点击【写短评】按钮后,向后端发起ajax请求;


一:需求分析;


二:正式开发;

1.在detail.ftl前端编写:点击【写短评】按钮后,在页面上弹出一个写短评的对话框;

启动Tomcat,观察效果:没问题;

接下来就是,写完了短评,点击【提交】,会向后台发起ajax请求;但是,我们后端目前还没有处理写短评的逻辑;所以,接下来我们就去后端编写对应的逻辑; 

 

2.在MemberService接口中,定义发布新短评的方法:evaluate()方法;

    /**
     * 发布新的短评
     * @param memberId 用户id
     * @param bookId 图书id
     * @param score 评分
     * @param content 短评内容
     * @return 短评对象
     */
    public Evaluation evaluate(Long memberId, Long bookId, Integer score, String content);

说明: 

(1)这儿有遇到了上篇博客提到的所谓的【灵活性】;

3.在MemberServiceImpl实现类中,实现发布新短评的方法:evaluate()方法;

    /**
     * 发布新的短评
     *
     * @param memberId 用户id
     * @param bookId   图书id
     * @param score    评分
     * @param content  短评内容
     * @return 短评对象
     */
    public Evaluation evaluate(Long memberId, Long bookId, Integer score, String content) {
        Evaluation evaluation = new Evaluation();
        evaluation.setBookId(bookId);
        evaluation.setMemberId(memberId);
        evaluation.setScore(score);
        evaluation.setContent(content);
        evaluation.setCreateTime(new Date());
        evaluation.setState("enable");//设置审核状态,默认为enable
        evaluation.setEnjoy(0);//设置初始点赞数量
        evaluationMapper.insert(evaluation);
        return evaluation;
    }

说明:

(1)这个方法很简单,就是根据传过来的参数,和数据表的要求,实例化Evaluation对象,然后调用Dao层方法,去插数据就行了;

(2)自然要注入EvaluationMapper对象;同时,因为MemberServiceImpl类默认设置全部方法开启事务,所以我们不用再在evaluate()方法上设置事务了;

4.在MemberController类中,增加前后端交互的方法:evaluate()方法;(Controller中的方法可以随便起,但为了见名知意,也起做evaluate了)

    /**
     * 发布新的短评
     * @param memberId 用户id
     * @param bookId 图书id
     * @param score 评分
     * @param content 短评内容
     * @return
     */
    @PostMapping("/evaluate")
    @ResponseBody
    public Map evaluate(Long memberId, Long bookId, Integer score, String content) {
        Map result = new HashMap();
        try {
            memberService.evaluate(memberId, bookId, score, content);
            result.put("code", "0");
            result.put("msg", "success");
        } catch (BussinessException ex) {
            ex.printStackTrace();
            result.put("code", ex.getCode());
            result.put("msg", ex.getMsg());
        }
        return result;
    }

说明:

(1)这个方法很简单,没什么好说的;

(2)Service层返回值的一点说明:插入更新类的方法,最好也要返回【插入、更新】的数据;

5.在detail.ftl前端编写:点击【写短评】按钮后,向后端发起ajax请求;

 

启动Tomcat,观察效果:没问题; 

在数据库中,也有对应的数据;

 


至此,写短评的功能就完成了;下篇博客将介绍会员给短评点赞的功能;

最后

以上就是故意鸭子为你收集整理的SSM开发书评网25:写短评;一:需求分析;二:正式开发;的全部内容,希望文章能够帮你解决SSM开发书评网25:写短评;一:需求分析;二:正式开发;所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部