项目第三天

第三天(—2022/2/8—)

写用户注册,以及登录和未登录情况下导航栏右侧的状态

编写查询图书
service层

@Service
public class BookService {
    @Autowired
    BookMapper bookMapper;

    public List<Book> queryBooks(){
        return  bookMapper.selectByExample(new BookExample());
    }
}

编写测试

@Test
    public void test03(){
        ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
        BookService mapper = ioc.getBean(BookService.class);
        List<Book> books = mapper.queryBooks();
        for (Book book : books) {
            System.out.println(book.toString());
        }
    }

向数据库添加数据

controller层

@Controller
@SessionAttributes(value = {"pageInfo"},types = {PageInfo.class})
public class BookController {
    @Autowired
    BookService bookService;

    @RequestMapping("/QueryBook")
    public String queryBooks(@RequestParam(value = "pn",defaultValue = "1") Integer pn,
            Model model){
        PageHelper.startPage(pn,8);
        List<Book> books = bookService.queryBooks();
        PageInfo page = new PageInfo(books, 8);
        model.addAttribute("pageInfo",page);
        return "bookList";
    }

    @RequestMapping("/index")
    public String toIndex(){
        return "index";
    }

}

页面展示

增加分页条
使用pagehelper,引入依赖
出错

Cannot find class: com.github.pagehelper.PageInterceptor

原因:没有将新包加入到lib中
解决:项目结构将包加载到lib

分页条效果

优化分页条
增强分页条显示的一些逻辑

<div class="row text-center">
        <div class="col-md-12">
            <p class="">当前第<span>${pageInfo.pageNum}</span>&nbsp;总共<span>${pageInfo.pages}</span></p>
        </div>
    </div>
    <div class="row text-center">

        <div >
            <nav aria-label="Page navigation">
                <ul class="pagination pagination-lg">
                    <li><a href="${Path}/QueryBook?pn=1">首页</a></li>

                        <c:if test="${pageInfo.hasPreviousPage}">
                             <li><a href="${Path}/QueryBook?pn=${pageInfo.pageNum-1}" aria-label="Previous">
                                 <span aria-hidden="true">&laquo;</span></a>
                             </li>
                        </c:if>

                    <c:forEach items="${pageInfo.navigatepageNums}" var="pageNum">
                        <c:if test="${pageNum==pageInfo.pageNum}">
                            <li class="active"><a  href="${Path}/QueryBook?pn=${pageNum}">${pageNum}</a></li>
                        </c:if>
                        <c:if test="${pageNum!=pageInfo.pageNum}">
                            <li ><a  href="${Path}/QueryBook?pn=${pageNum}">${pageNum}</a></li>
                        </c:if>
                    </c:forEach>
                    <c:if test="${pageInfo.hasNextPage}">
                        <li>
                            <a href="${Path}/QueryBook?pn=${pageInfo.pageNum+1}" aria-label="Next">
                                <span aria-hidden="true">&raquo;</span>
                            </a>
                        </li>
                    </c:if>

                    <li>
                        <a href="${Path}/QueryBook?pn=${pageInfo.pages}">末页</a>
                    </li>
                </ul>
            </nav>
        </div>

阶段测试

问题:发现登录过后跳转页面时导航栏用户显示不登录
问题所在:有关用户登录判断的属性hasUser是null,且发现pageInfo也不能在bookList.jsp页面以外使用
解决:由于controller中写的Model,向Model存入数据是request级别的,故两次请求当然无效。给controller加上

@SessionAttributes(value = {"pageInfo"},types = {PageInfo.class})

使得该属性可以在session中使用
@SessionAttributes和@SessionAttribute 的区别,前者是存,用在类上,后者是取,用在方法参数里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值