表单提交日期类型转换和PageHelper插件分页使用

一.表单提交日期类型转换的两种方法

    1).局部转换,利用注解

       在POJO的属性上加注解 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

      

public class Product {
    private String id; // 主键
    private String productNum; // 编号 唯一
    private String productName; // 名称
    private String cityName; // 出发城市

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date departureTime; // 出发时间

    private String departureTimeStr;

    2).全局转换,利用转换器

           使用分三步

           第一步:自定义一个转换类实现Converter<S,T>接口

          

/**
 * 全局字符串转日期工具类
 */
public class StringToDateConvertor implements Converter<String,Date>{
    @Override
    public Date convert(String source) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date parse = null;
        try {
             parse = sdf.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return parse;
    }
}

 

           第二步:在springmvc.xml中配置转换器

       

<!--字符串转时间-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean id="stringToDateConvertor" class="cn.itcast.utils.StringToDateConvertor"></bean>
            </set>
        </property>
    </bean>

 

          第三部:在springmvc.xml中注解驱动中加入转换器服务id

       

 <mvc:annotation-driven conversion-service="conversionService"/>

 

二.PageHelper插件分页使用

     1).导入插件依赖

     

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

  2).在service层调用方法查询之前调用静态方法 PageHelper.startPage(page,pageSize);

   

@Service
public class ProductServiceImpl implements IProductService {

    @Autowired
    private IProductDao productDao;
    @Override
    public List<Product> findAll(int page, int pageSize) {
        //在查询前一步,调用静态方法
        PageHelper.startPage(page,pageSize);
        List<Product> productList =productDao.findAll(page,pageSize);
        return productList;
    }

3.在Controller层,将结果集作为参数加入到构造方法中,将pageInfo作为对象传到前台页面

 

@Controller
@RequestMapping("/product")
public class ProductController {
    @Autowired
    private IProductService productService;
    @RequestMapping("/findAll")
    public ModelAndView findAll(@RequestParam(name = "page",defaultValue = "1") int page, @RequestParam(name = "pageSize",defaultValue = "4") int pageSize){
        ModelAndView mv= new ModelAndView();
        List<Product> productList=productService.findAll(page,pageSize);
        //使用分页插件,必须将结果集作为参数,构造出pageInfo,pageInfo包含数据及分页全部信息
        PageInfo pageInfo = new PageInfo(productList);
        mv.addObject("pageInfo",pageInfo);
        mv.setViewName("product-list");
        return mv;
    }

 4.在配置文件中配置

  方法一:

 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!--分页插件-->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                   <property name="properties">
                       <props>
                           <prop key="helperDialect">oracle</prop>
                           <prop key="reasonable">true</prop>
                       </props>
                   </property>
                </bean>
            </array>
        </property>
    </bean>

方法二:

 

<configuration>
    <plugins>
        <!-- com.github.pagehelper 为 PageHelper 类所在包名 -->
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库-->
            <property name="dialect" value="mysql"/> 
        </plugin>
    </plugins>
</configuration>

 

posted on 2018-10-22 20:38  雨后黄昏  阅读(321)  评论(0编辑  收藏  举报

导航