图书详情类创建完后HTTP Status 404 – 未找到

图书详情类创建完后HTTP Status 404 – 未找到

# 具体遇到的问题
http://img1.sycdn.imooc.com//climg/5fcedfae093cc72010950224.jpg


# 相关课程内容截图
http://img1.sycdn.imooc.com//climg/5fcedfcd09c1878510890852.jpg


# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

实体类:

@TableName("evaluation")
public class Evaluation {
@TableId(type = IdType.AUTO)
private Long evaluationId;
private Long bookId;
private String content;
private Integer score;
private Long memberId;
private Date createTime;
private Integer enjoy;
private String state;
private String disableReason;
private Date disableTime;

public Long getEvaluationId() {
return evaluationId;
}

public void setEvaluationId(Long evaluationId) {
this.evaluationId = evaluationId;
}

public Long getBookId() {
return bookId;
}

public void setBookId(Long bookId) {
this.bookId = bookId;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public Integer getScore() {
return score;
}

public void setScore(Integer score) {
this.score = score;
}

public Long getMemberId() {
return memberId;
}

public void setMemberId(Long memberId) {
this.memberId = memberId;
}

public Date getCreateTime() {
return createTime;
}

public void setCreateTime(Date createTime) {
this.createTime = createTime;
}

public Integer getEnjoy() {
return enjoy;
}

public void setEnjoy(Integer enjoy) {
this.enjoy = enjoy;
}

public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

public String getDisableReason() {
return disableReason;
}

public void setDisableReason(String disableReason) {
this.disableReason = disableReason;
}

public Date getDisableTime() {
return disableTime;
}

public void setDisableTime(Date disableTime) {
this.disableTime = disableTime;
}
}





mapper:

package com.imooc.reader.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.imooc.reader.entity.Evaluation;

public interface EvaluationMapper extends BaseMapper<Evaluation> {

}





mapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.imooc.reader.mapper.EvaluationMapper">

</mapper>






service:

package com.imooc.reader.service;

import com.imooc.reader.entity.Evaluation;

import java.util.List;

public interface EvaluationService {

/**
    * 按照图书ID查看短评
    */
   public List<Evaluation> selectByBookId(Long bookId);
}




impl:

package com.imooc.reader.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.imooc.reader.entity.Evaluation;
import com.imooc.reader.mapper.EvaluationMapper;
import com.imooc.reader.service.EvaluationService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;
@Service("evaluationService")
@Transactional(propagation = Propagation.NOT_SUPPORTED,readOnly = true)

public class EvaluationServiceImpl implements EvaluationService {
@Resource
   private EvaluationMapper evaluationMapper;




/**
    * 按照图书ID查看短评
    */
   public List<Evaluation> selectByBookId(Long bookId) {
QueryWrapper<Evaluation> queryWrapper =new QueryWrapper<Evaluation>();
queryWrapper.eq("book_id",bookId);
queryWrapper.eq("state","enable");
queryWrapper.orderByDesc("create_time");
List<Evaluation> evaluationList = evaluationMapper.selectList(queryWrapper);
return evaluationList;
}
}





​controller:

package com.imooc.reader.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.imooc.reader.entity.Book;
import com.imooc.reader.entity.Category;
import com.imooc.reader.entity.Evaluation;
import com.imooc.reader.service.BookService;
import com.imooc.reader.service.CategoryService;
import com.imooc.reader.service.EvaluationService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import java.util.List;

@Controller
public class BookController {
@Resource
   private CategoryService categoryService;
@Resource
   private BookService bookService;
@Resource
   private EvaluationService evaluationService;

/**
    * 显示首页
    * @return
    */
   @GetMapping("/")
public ModelAndView showIndex() {
ModelAndView mav = new ModelAndView("/index");
List<Category> categorylist = categoryService.selectAll();
mav.addObject("categoryList",categorylist);

return mav;
}

/**
    * 加载书籍
    */
   @GetMapping("/books")
@ResponseBody
   public IPage<Book> selectBook(Long categoryId,String order,Integer p){
if(p==null){
p=1;
}
IPage<Book> pageObject = bookService.paging(categoryId,order,p,10);
return pageObject;
}


/**
    * 根据图书编号查书的对象
    */
   @GetMapping("/book/{id}")
public ModelAndView showDetail(@PathVariable("id") Long id){
Book book =bookService.selectById(id);
List<Evaluation> evaluationList = evaluationService.selectByBookId(id);
ModelAndView mav = new ModelAndView("/detail");
mav.addObject("book",book);
mav.addObject("evaluationList",evaluationList);
return mav;
}
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2020-12-08 13:54:29

同学你好,1. 可能是同学设置了项目名导致在访问时,出现404异常,则建议同学将项目名修改为/,然后重新访问项目试一下。

http://img1.sycdn.imooc.com//climg/5fcf1419091bf28810920692.jpg

2. 也有可能是没有成功加载项目导致的,则建议同学清除缓存重新试一下。如下图所示:如果还存在问题,同学也可以反馈一下浏览器中输入的url。

http://img1.sycdn.imooc.com//climg/5fcf15110956bd1002710356.jpg


  • 提问者 不才少年 #1

    不行,我项目名就是/,我也清了缓存,也没用,tomcat正常启动,就是404

    2020-12-08 15:48:27
  • 好帮手慕小尤 回复 提问者 不才少年 #2

    同学你好,404是访问路径不正确,在对应路径下没有找到对应资源导致的。老师在源码中测试代码是没有问题的,建议同学访问其他路径试一下,或使用课程源码试一下。

    祝学习愉快!

    2020-12-08 18:59:32
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师