实习第十一天-springboot新闻

前台页面-评论

1.点击新闻跳转到评论

// An highlighted block
    @RequestMapping("/news/{id}")
    public String news(@PathVariable Long id,Model model){//展现详情页
        News news = newsService.findNewsById(id);
        model.addAttribute("news",news);
        return "news";
    }

在这里插入图片描述

2.保存评论

// An highlighted block

//CommentController.java  
    @PostMapping("/comments")
    public String save(Comment comment, HttpSession session){//保存评论
        User user=(User)session.getAttribute("user");//得到用户登录记录
        if (user == null) {//若是管理员
            comment.setAdminComment(false);
        }else{//若不是管理员
            comment.setAdminComment(true);
        }
        commentService.save(comment);//添加评论
        Long newsId=comment.getNews().getId();
        return "redirect:/comments/"+newsId;

    }

//CommentServiceImpl
@Service
public class CommentServiceImpl implements CommentService {
    @Autowired
    private CommentDao commentDao;
    @Override
    public void save(Comment comment) {
        if(comment.getParentComment().getId()==-1){
            comment.setParentComment(null);
        }
        commentDao.save(comment);

    }
    }

3.关于我页面
在这里插入图片描述

// An highlighted block
    @RequestMapping("/about")
    public String about(){//关于我
        return "about";
    }

4.回复评论
在这里插入图片描述

// An highlighted block
//CommentController.java  
    @RequestMapping("/comments/{newsId}")
    public String comments(@PathVariable Long newsId, Model model){
        List<Comment> comments=commentService.findCommentByNewsId(newsId);//根据新闻id查询评论
        model.addAttribute("comments",comments);
        return "news :: commentList";

    }
//CommentDao
public interface CommentDao extends JpaRepository<Comment,Long> {
    List<Comment> findByNewsIdAndParentCommentNull(Long newsId, Sort sort);
}
//CommentServiceImpl
    @Override
    public List<Comment> findCommentByNewsId(Long newsId) {
        Sort sort=Sort.by("createTime");
        List<Comment> comments=commentDao.findByNewsIdAndParentCommentNull(newsId,sort);
        return null;
    }

5.搜索
在这里插入图片描述

// An highlighted block

//IndexController.java
    @RequestMapping("/search")
    public String search(@PageableDefault(size =3,sort={"updateTime"},direction = Sort.Direction.DESC)Pageable pageable,
                         String query,Model model){//搜索
        Pageable page=newsService.findNewsByQuery(query,pageable);
        model.addAttribute("page",page);
        model.addAttribute("query",query);
        return "search";

    }
 
//NewsServiceImpl.java
    @Override
    public Pageable findNewsByQuery(String query, Pageable pageable) {
        return newsDao.findByquery("%"+query+"%",pageable);//模糊查询+
    }
//NewsDao.java
    @Query("select n from News n where n.title like ?1 or n.content like ?1")
    Pageable findByquery(String s, Pageable pageable);

6.左下角最新新闻
在这里插入图片描述


// An highlighted block

//IndexController.java
    @RequestMapping("/news/lastestNews")
    public String lastestNews(Model model){
        List<News> latestNewsList=newsService.findTop(3);
        model.addAttribute("latestNewsList",latestNewsList);
        return "_fragments :: lastestNewsList1";

    }
//NewsDao

    @Query("select n from News n")
    List<News> findTop(Pageable pageable);
}

7.登录拦截过滤

// An highlighted block

//LoginInterceptor
public class LoginInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception{
        if(request.getSession().getAttribute("user")==null){
            response.sendRedirect("/admin");
            return false;
        }
        return true;
    }
}

//WebConfig.java
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public  void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/admin/**")
                .excludePathPatterns("/admin")
                .excludePathPatterns("/admin/login");
    }

}

8.权限因为还未讲完下次再一起总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第01讲-软件安装 第02讲-数据库设计1 第03讲-数据库设计2 第04讲-界面模拟图设计 第05讲-数据表操作类设计 第06讲-编写SQLHelper 第07讲-编写类别表操作类 第08讲-重构SQLHelper 第09讲-浅入浅出SQL注入 第10讲-建立新闻类别实体类 第11讲-浅入浅出SQL触发器 第12讲-编写新闻评论类 第13讲-浅入浅出存储过程 第14讲-重构SQLHelper2 第15讲-编写剩下的存储过程 第16讲-完成新闻表操作类 第17讲-编写BLL层 第18讲-界面制作必备软件 第19讲-CSS简介 第20讲-CSS核心内容 第21讲-制作首页1 第22讲-制作首页2 第23讲-制作首页3 第24讲-首页制作4 第25讲-首页制作5 第26讲-制作母版页  第27讲-其他页面制作1 第28讲-其他页面制作2 第29讲-带边框的圆角框制作1 第30讲-带边框的圆角框制作2 第31讲-制作出错页 第32讲-可变宽度的圆角框制作1 第33讲-可变宽度的圆角框制作2 第34讲-完成类别管理页面制作 第35讲-完成界面制作 第36讲-整合首页1 第37讲-整合首页2 第38讲-整合新闻列表页 第39讲-整合搜索页 第40讲-整合新闻内容页1 第41讲-整合新闻内容页2 第42讲-整合新闻内容页3 第43讲-前台页面除错 第44讲-整合登陆页 第45讲-整合类别管理页1 第46讲-整合类别管理页2 第47讲-整合类别管理页3 第48讲-整合类别管理页4 第49讲-整合类别管理页5 第50讲-整合类别管理页6 第51讲-整合类别管理页7 第52讲-整合类别管理页8 第53讲-整合类别管理页9 第54讲-整合类别管理页10 第55讲-整合类别管理页11 第56讲-整合新闻管理页1 第57讲-整合新闻管理页2 第58讲-整合新闻管理页3 第59讲-整合添加新闻页1 第60讲-整合添加新闻页2 第61讲-尾声 第62讲-尾声续 第63讲-尾声最后续

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值