码迷,mamicode.com
首页 > 编程语言 > 详细

08-SpringMVC02

时间:2019-07-31 19:03:16      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:UNC   app   用户名   spring   prope   var   ice   支持   user   

今日知识

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

标签:UNC   app   用户名   spring   prope   var   ice   支持   user   

原文地址:https://www.cnblogs.com/rqy0526/p/11278110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!