开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第36天,点击查看活动详情
写在前面
当我们学习了spring框架之后,基本上来说,已经是打好了一个良好得基础了。
但是距离一个企业的基本开发需要掌握的框架,还是得经过不断得学习,才行。
这不,我们继续学习下一个框架SpringMVC。
SpringMVC这个框架,一般来说,用来作为我们项目得Controller层,用来接收用户得输入,然后选择相应得视图回显展示给用户。
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(javaBean:封装数据)分开构成了MVC。
对于以前得项目来说,还有出现Struts得,但现在基本都很少了。
Struts1(现在一般不用),Struts2(一般老项目使用)等等。
这不,接下来就是spring mvc框架的学习之旅了,希望可以帮助到大家。
一、参数绑定处理
1.1 自定义日期参数绑定
对于springmvc无法解析的参数绑定类型,比如[年月日时分秒格式的日期]绑定到Date类型会报错,此时需要自定义[参数转换器]进行参数绑定。
- Converter代码
public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
return simpleDateFormat.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
- Converter配置
<!-- 加载注解驱动 -->
<mvc:annotation-driven conversion-service="conversionService"/>
<!-- 转换器配置 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.llsydn.ssm.controller.converter.DateConverter"/>
</set>
</property>
</bean>
1.2 文件类型参数绑定
SpringMVC 文件上传的实现,是由 commons-fileupload 这个第三方jar包实现的。
- 加入依赖包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
- 上传页面
JSP中的form表单需要指定enctype="multipart/form-data"
- 配置Multipart解析器
在 springmvc.xml 中配置 multipart 类型解析器:
<!-- multipart类型解析器,文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 上传文件的最大尺寸 5M-->
<property name="maxUploadSize" value="5242880"/>
</bean>
- Controller类代码
@RequestMapping("fileupload")
public String findUserById(MultipartFile uploadFile) throws Exception {
// 编写文件上传逻辑(mvc模式和三层结构模式)
// 三层模式:表现层(controller、action)、业务层(service、biz)、持久层(dao、mapper)
// MVC模式主要就是来解决表现层的问题的(原始的表现层是使用Servlet编写,即编写业务逻辑,又编写视图展示)
if (uploadFile != null) {
System.out.println(uploadFile.getOriginalFilename());
// 原始图片名称
String originalFilename = uploadFile.getOriginalFilename();
// 如果没有图片名称,则上传不成功
if (originalFilename != null && originalFilename.length() > 0) {
// 存放图片的物理路径
String picPath = "E:\\";
// 获取上传文件的扩展名
String extName =
originalFilename.substring(originalFilename.lastIndexOf("."));
// 新文件的名称
String newFileName = UUID.randomUUID() + extName;
// 新的文件
File newFile = new File(picPath + newFileName);
// 把上传的文件保存成一个新的文件
uploadFile.transferTo(newFile);
// 同时需要把新的文件名更新到数据库中
// ...
}
}
return "文件上传成功";
}
好了,以上就是SpringMVC学习之旅-应用掌握篇(6) 的全部内容了。
今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^
如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!