springmvc处理静态资源以及日期格式数据
作者:互联网
在springmvc中,一般都将请求交给控制器处理,但是一些静态资源,如:js文件,css文件,jpg文件等,这些是不需要控制器处理的,因此需要配置静态资源,有三种配置方式:
1.在web.xml中配置tomcat的默认servlet处理器:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping>
2.在springmvc配置文件中,配置静态资源路径:
<!--static为静态资源的路径--> <mvc:resources mapping="/static/**" location="/static/"/>
3.使用defaultServletHandler默认静态资源放行
<mvc:default-servlet-handler/>
日期格式转换:
在练习中,如果前端表单数据中有Date格式的数据时
<input type="date" name="hiredate">
传递到后台的数据默认是字符串格式的,如果使用实体接收,实体中的字段属性为Date类型,就会报400的错误,因为spring-mvc不能自动将string格式数据转为date类型,因此需要我们转换数据格式,转换数据格式有三种类型:
1.使用注解的方式:
使用上面的注解可以在后台将字符串数据转为Date类型的,但是如果要展示数据,后台传递过来的数据格式为日期类型的,如果想要转成常见的yyyy-MM-dd类型,需要再转换:
2.创建一个BaseController,使用@InitBinder注解;controller需要继承BaseController
public class BaseController { @InitBinder public void init(WebDataBinder binder) { SimpleDateFormat smf = new SimpleDateFormat("yyyy-MM-dd"); //严格转换,不会进行日期的增减处理 smf.setLenient(false); //注册一个类型转换器 binder.registerCustomEditor(Date.class, new CustomDateEditor(smf, true)); } }
3.定义一个全局类型转化器,实现Converter接口:
public class DateConverter implements Converter<String,Date> { @Override public Date convert(String source) { SimpleDateFormat smf = new SimpleDateFormat("yyyy-MM-dd"); //严格转换 smf.setLenient(false); try { Date date = smf.parse(source); return date; } catch (ParseException e) { e.printStackTrace(); } return new Date(); } }
注册该转换器:
<!--spring-mvc简易配置--> <mvc:annotation-driven conversion-service="conversionService"/> <!--配置日期转换器--> <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters" > <set> <bean class="com.zs.controller.DateConverter"/> </set> </property> </bean>
标签:类型,springmvc,new,SimpleDateFormat,静态,smf,Date,格式,public 来源: https://www.cnblogs.com/Zs-book1/p/11323770.html