一.表单提交日期类型转换的两种方法
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>