SSM黑马企业权限管理系统项目

项目简介

技术选型:Maven、Spring、SpringMVC、Mybatis、Spring-security、Mysql、AdminLTE、JSP

功能:完成一些CRUD等操作

我们的页面通常都是放在WEB-INF下的,这样资源就会受到保护,客户端不能直接访问,我们有些请求就访问不到WEB-INF下的资源。
解决办法:
1.新建一个用于转发到指定页面的controller,通过视图解析器转发到WEB-INF目录下要访问的资源。

@Controller
@RequestMapping("/forward")
public class ForwardPageController {
   

    @RequestMapping("/forwardProductAdd")
    public String forwardProductAdd() {
   
        return "product-add";
    }
}

2.把要跳转的请求路径先跳转到controller去,由controller帮我们跳转到WEB-INF目录下。


onclick="location.href='${pageContext.request.contextPath}/forward/forwardProductAdd'">

主要功能实现分析 :

产品查询所有流程
在这里插入图片描述

产品添加流程
在这里插入图片描述

在产品添加的时候出现了类型转换异常,页面提交到服务器端的是字符串,无法转换为日期类型,所有我们需要配置一下类型转换器,有3种方法(1.实体类中加日期格式化注解。2.属性编辑器。3. 类型转换器Converter。我们这里用的是第一种)。
解决步骤:
1.只需在类型转换出现异常的属性上添加一个注解。
例:@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm”)
private Date departureTime; // 出发时间

订单查询流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询订单时包含有产品信息,当我们在查询订单时就需要把产品信息也查询出来,而且这是旅游的后台管理系统,所以根据业务需求一个订单只对应一个产品,是多对一的关系,因此在订单实体类中应包含一个产品对象引用。

@Select("select * from orders")
@Results({
   
        @Result(id=true,property = "id",column = "id"),
        @Result(property = "orderNum",column = "orderNum"),
        @Result(property = "orderTime",column = "orderTime"),
        @Result(property = "orderStatus",column = "orderStatus"),
        @Result(property = "peopleCount",column = "peopleCount"),
        @Result(property = "peopleCount",column = "peopleCount"),
        @Result(property = "payType",column = "payType"),
        @Result(property = "orderDesc",column = "orderDesc"),
        @Result(property = "product",column = "productId",javaType = Product.class,one = @One(select = "cn.kjcoder.dao.ProductDao.findById"))
})
List<Orders> findAll() throws Exception;

分页查询
使用PageHelper实现分页查询,PageHelper是国内非常优秀的一款开源的mybatis分页插件。
使用步骤:
1.添加依赖

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>xxxxx</version>
</dependency>

2.在spring配置文件中的SqlSessionFactory中传入pagehelper的插件

/* 传入PageHelper的插件 */
<property name="plugins">
    <array>
        <!-- 传入插件的对象 -->
        <bean class="com.github.pagehelper.PageInterceptor">
            <property name="properties">
                <props>
                    <prop key="helperDialect">mysql</prop>
                    <prop key="reasonable">true</prop>
                </props>
            </property>
        </bean>
    </array>
</property>

3.在需要进行分页的查询方法前调用PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个查询方法会进行分页。

public List<Orders> findAll(int page,int size) throws Exception {
   
	   //第一个参数为页码值,第二个参数为每页显示的条数
	   //这条语句必须写在调用dao方法的前面,并且中间不能有别的语句(紧跟着的第一个方法会进行分页)
	   PageHelper.startPage(page,size);
	   return ordersDao.findAll();
}

PageInfo是PageHelper为我们提供的一个分页Bean

@Controller
public ModelAndView findAll(@RequestParam(name = "page",required = true,defaultValue = "1")Integer page,@RequestParam(name = "size",required = true,defaultValue = "3")Integer size) throws Exception{
   
        ModelAndView mv = new ModelAndView();
        List<Orders> all = ordersService.findAll();
        PageInfo pageInfo = new PageInfo(all);
        mv.addObject("pageInfo",pageInfo);
        mv.setViewName("orders-page-list");
        
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值