SSM案例整合踩的一些坑
Posted zxgcoding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM案例整合踩的一些坑相关的知识,希望对你有一定的参考价值。
一、出现错误:Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property ‘dataSource‘
无法将你的datasource里配置的字符串转换成javax.sql.DataSource对象,导致SessionFactory无法完成,datasource配置肯定有误,检查[/WEB-INF/applicationContext.xml]文件中的datasource相关的配置。
<property name="dataSource" value="dataSource">
配置错了,这写法Spring会以字符串方式注入,报类型不匹配异常,改为
<property name="dataSource" ref="dataSource"/>
二、WEB-INF下的jsp文件一般只能通过请求然后后台controller层才能跳转,直接请求该路径下的文件是进不去的会报404,而如果直接请求文件路径地址,如<a href="$pageContext.request.contextPath /Novel.jsp/>那么该文件是需要在Webapp文件夹下的。
三、spring mvc绑定参数之类型转换有三种方式:
1.实体类中加日期格式化注解
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
private Date creationTime;
只是解决了局部问题,解决不了根本问题
2.属性编辑器(一般不用了)
spring3.1之前
在Controller类中通过@InitBinder完成
/**
* 在controller层中加入一段数据绑定代码
* @param webDataBinder
*/
@InitBinder
public void initBinder(WebDataBinder webDataBinder) throws Exception
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
simpleDateFormat.setLenient(false);
webDataBinder.registerCustomEditor(Date.class , new CustomDateEditor(simpleDateFormat , true));
备注:自定义类型转换器必须实现PropertyEditor接口或者继承PropertyEditorSupport类
写一个类 extends propertyEditorSupport(implements PropertyEditor)
public void setAsText(String text)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy -MM-dd hh:mm");
Date date = simpleDateFormat.parse(text);
this.setValue(date);
public String getAsTest()
Date date = (Date)this.getValue();
return this.dateFormat.format(date);
3. 类型转换器Converter(用的比较多,虽然繁琐,但是治本)
1 public class DateConvert implements Converter<String, Date> 2 private String pattern; 3 4 public void setPattern(String pattern) 5 this.pattern = pattern; 6 7 8 @Override 9 public Date convert(String source) 10 SimpleDateFormat format = new SimpleDateFormat(pattern); 11 Date d = null; 12 13 try 14 d = format.parse(source); 15 catch (ParseException e) 16 e.printStackTrace(); 17 18 19 return d; 20 21
在springMVC.xml中的配置
1 <mvc:annotation-driven conversion-service="conversionService"/> 2 <!-- 自定义的日期转换器--> 3 <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> 4 <property name="converters"> 5 <set> 6 <bean class="edu.kust.utils.DateConvert"> 7 <!-- 自定义日期格式--> 8 <property name="pattern" value="yyyy-MM-dd"/> 9 </bean> 10 </set> 11 </property> 12 </bean>
以上是关于SSM案例整合踩的一些坑的主要内容,如果未能解决你的问题,请参考以下文章