08-SpringMVC02
Posted rqy0526
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08-SpringMVC02相关的知识,希望对你有一定的参考价值。
今日知识
1. 文件上传
2. ResponseBody和RequestBody
3. SpringMVC多视图
4. 静态资源的处理
文件上传
1. 导包,(commom.io , commons-fileupload)
2. xml配置
* <!--id必须写为multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--文件大小限定-->
<property name="maxUploadSize" value="5120000"/>
</bean>
3. 处理的请求的路径方法
@Controller
public class FileController
@RequestMapping("upload")
public String upload(MultipartFile file,User user) throws IOException
//上传路径,文件名
File receive=new File("F://file",file.getOriginalFilename());
//io上传
file.transferTo(receive);
System.out.println(user);
return "success";
4. jsp页面
* <form action="/upload" enctype="multipart/form-data" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
头像:<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
5. 多文件上传
将处理方法的接收参数改成数组即可:MultipartFile[] file
静态资源的处理
1. 方法一:
<!--静态资源处理器
web目录下
classpath
文件路径-->
<mvc:default-servlet-handler/>
2. 方法二
<!-- web目录下-->
<!--mapping;访问的url-->
<!--location:代表静态资源访问的路径-->
<mvc:resources mapping="/pic/**" location="/WEB-INF/pic/"/>
<!-- classpath下-->
<mvc:resources mapping="/pic1/**" location="classpath:/pic1/"/>
<!--访问本地文件路径-->
<mvc:resources mapping="/pic2/**" location="file:F://file/"/>
Spring MVC对json数据的处理
1. ResponseBody
* 把后台pojo转换json对象
1.导包:jackson-core,jackson-mapper
2. RequestBody
* 接受前台json数据,把json数据自动封装javaBean
3. 案例
* @RequestBody:json装换为对象
* @ResponseBody:将对象封装为json返回
*
@RequestMapping("/save")
public @ResponseBody Student list(@RequestBody Student student)
System.out.println(student);
return student;
* js代码:
* function register()
var name=document.getElementById("name").value;
var sex=document.getElementById("sex").value;
var url="$pageContext.request.contextPath/stu/save";
var prmts="name":name,"sex":sex;
var jsonObj=JSON.stringify(prmts);//转换为json数据提交到后台
$.get(url,prmts,function (data)
alert(data.name+"------"+data.sex);
,"json");
4. @RestController注解代表:该类的所有的方法都返回一个json数据
SpringMVC多视图
1. 概念:多视图是一个方法可以返回json/xml等格式的数据
2. 使用
1. 导包 :spring-oxm.jar
2. <bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<!-- 配置支持媒体类型 -->
<property name="contentNegotiationManager">
<bean
class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"></entry>
<entry key="xml" value="application/xml"></entry>
</map>
</property>
</bean>
</property>
<!-- 指定默认视图 -->
<property name="defaultViews">
<!-- 支持多个视图 -->
<list>
<!-- 对josn格式视图支持 -->
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
<!-- xml格式视图支持 -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.gyf.backoffice.domain.Student</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
3.pojo需要声明 @XmlRootElement
public class Student
private String name;
private String sex;
4. 访问路径:localhost/stu/save.json(加个后缀即可)
localhost/stu/save.xml
以上是关于08-SpringMVC02的主要内容,如果未能解决你的问题,请参考以下文章