Json&File&Date&Encoding
- SpringMVC处理JSON
- 导包
- <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
- <dependency>
- 在Handler方法上使用@ResponseBody注解
- @ResponseBody
@RequestMapping("/json")
public Book json() {
Book book = new Book(12,"谷物大脑",39);
return book;
}
- @ResponseBody
- 导包
- 文件上传的处理
- 完成文件上传功能的实现方式:
- 原生ServletAPI:Request.getInputStream()
- 采用现有的组件:FileUpload,SmartUpload
- 使用框架提供的功能
- 使用SpringMVC上传功能的步骤
- 配置上传文件的解析器(CommonsMultipartResolver)
- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10485760"></property>
</bean>
- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- 定义上传页面
- <form action="uploadFile" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="name"><br>
照片:<input type="image" name="photo"><br>
<input type="submit" value="上传">
</form>
- <form action="uploadFile" method="post" enctype="multipart/form-data">
- 在Handler中接收文件并保存
- @Autowired
ServletContext context; - @RequestMapping("/uploadFile")
public String uploadFile(String name, @RequestParam("photo") MultipartFile photo) {
System.out.println("姓名:"+name);
if(!photo.isEmpty()) {
System.out.println("原始文件名:"+photo.getOriginalFilename());
System.out.println("文件的大小:"+photo.getSize());
System.out.println("文件类型"+photo.getContentType());
try {
String path = context.getRealPath("/");
path = path + "WEB-INF/jsp/img/";
System.out.println(path);
photo.transferTo(new File(path+photo.getOriginalFilename()));
} catch (IllegalStateException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println("文件为空");
}
return "success";
}
- @Autowired
- 配置上传文件的解析器(CommonsMultipartResolver)
- 完成文件上传功能的实现方式:
- 日期类型的处理
- java.util.Date:@DateTimeFormat 注解,指定转化的格式即可;此注解还可用在 Calendar,Long,jota
- 字符编码的配置(web.xml)
- <!-- 字符编码 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- <!-- 字符编码 -->