SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】
Controller方法返回值
Controller方法的返回值其实就几种类型,我们来总结一下….
- void
- String
- ModelAndView
- redirect重定向
- forward转发
数据回显
其实数据回显我们现在的话就一点也不陌生了….我们刚使用EL表达式的时候就已经学会了数据回显了,做SSH项目的时候也有三圈问题的数据回显…
在页面上数据回显本质上就是获取reqeust域的值..
而在我们SpringMVC中,我们是使用Model来把数据绑定request域对象中的
一般地我们都是使用model.addAttribute()的方式把数据绑定到request域对象中…其实SpringMVC还支持注解的方式
@ModelAttribute注解
我们可以将请求的参数放到Model中,回显到页面上
上面这种用法和model.addAttribute()的方式是没啥区别的,也体现不了注解的方便性…
而如果我们要回显的数据是公共的话,那么我们就能够体会到注解的方便性了,我们把公共需要显示的属性抽取成方法,将返回值返回就行了。
那我们就不用在每一个controller方法通过Model将数据传到页面。
SpringMVC文件上传
我们使用Struts2的时候,觉得Struts2的文件上传方式比传统的文件上传方式好用多了…
http://blog.csdn.net/hon_3y/article/details/71091593
既然我们正在学习SpringMVC,那么我们也看一下SpringMVC究竟是怎么上传文件的…
配置虚拟目录
在这次,我们并不是把图片上传到我们的工程目录中…
那为啥不将图片直接上传到我们的工程目录中呢???我们仔细想想,按照我们之前的做法,直接把文件上传到工程目录,而我们的工程目录是我们写代码的地方 …往往我们需要备份我们的工程目录。
如果把图片都上传到工程目录中,那么就非常难以处理图片了…
因此,我们需要配置Tomcat的虚拟目录来解决,把上传的文件放在虚拟目录上…
又值得注意的是,Idea使用的Tomcat并不能使用传统的配置方式,也就是修改server.xml方式来配置虚拟目录,在Idea下好像不支持这种做法…
有兴趣的同学可以去测试一下:
http://blog.csdn.net/hon_3y/article/details/54412484
那么我在网上已经找到了对应的解决办法,就是如果在idea上配置虚拟目录
http://blog.csdn.net/LABLENET/article/details/51160828
检测是否配置成功:
快速入门
在SpringMVC中文件上传需要用到的jar包
- commons-fileupload-1.2.2.jar
- commons-io-2.4.jar
配置文件上传解析器
<!-- 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
测试的JSP
<%--
Created by IntelliJ IDEA.
User: ozc
Date: 2017/8/11
Time: 9:56
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>测试文件上传</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/upload.action" method="post" enctype="multipart/form-data" >
<input type="file" name="picture">
<input type="submit" value="submit">
</form>
</body>
</html>
值得注意的是,在JSP的name属性写的是picture,那么在Controller方法参数的名称也是要写picture的,否则是获取不到对应的文件的..
@Controller
public class UploadController {
@RequestMapping("/upload")
//MultipartFile该对象就是封装了图片文件
public void upload(MultipartFile picture) throws Exception {
System.out.println(picture.getOriginalFilename());
}
}
SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】的更多相关文章
- FormData使用方法详解,以及在IE9环境下,前端的文件上传问题
FormData的主要用途有两个: 1.将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率. 2.异步上传文件 一.创建formData对象 ...
- SpringMVC 文件上传配置,多文件上传,使用的MultipartFile(转)
文件上传项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6979915 一.配置文件:SpringMVC 用的是 的MultipartFil ...
- SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
一.配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file <!-- 配置Multipa ...
- MVC方法返回值数据
ModelAndView的作用以及用法 使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图.从名字上看ModelAndView中的Model代表模型,View代表视图,这个 ...
- SpringMVC中Controller的方法返回值
1. 返回ModelAndView对象 controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 实例 @RequestMapping(" ...
- springMVC对于controller处理方法返回值的可选类型
http://www.360doc.com/content/14/0309/19/834950_359081989.shtml
- php 在windows下配置虚拟目录的方法
1.先找到apache的配置文件 httpd.conf 找如如下代码: # Virtual hosts#Include conf/extra/httpd-vhosts.conf 把# Include ...
- SpringMVC 文件上传下载
目录 文件上传 MultipartFile对象 文件下载 上传下载示例 pom.xml增加 创建uploadForm.jsp 创建uploadForm2.jsp 创建userInfo.jsp spri ...
- SpringMVC(4):文件上传与下载
一,文件上传 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理 ...
随机推荐
- 【Spring 核心】AOP 面向切面编程
一.什么是面向切面编程? 二.通过切点来选择连接点 三.使用注解创建切面 四.在XML中声明切面 五.注入AspectJ切面
- 【Ubuntu 16】安装ssh
ubuntu16默认使用ufw(Uncomplicated FireWall 继承自 iptables)管理防火墙,使用gufw图形化界面方便管理, 默认情况下openssh-server没有安装. ...
- 30岁后还能入IT行业吗?
前言 写这样的文章只想给那些准备改行想入IT行业的同学一点点建议,当然只做参考,我的个人经历. 我也是一个30岁改行进IT行业的程序猿.入这行也有一年多了吧.给我的感觉就是比较苦逼. 入行前的培训 进 ...
- Ajax新玩法fetch API
目前 Web 异步应用都是基于 XMLHttpRequest/ActiveXObject (IE)实现的, 这些对象不是专门为资源获取而设计的,因而它们的 API 非常复杂,同时还需要开发者处理兼容性 ...
- websphere:rs.getDate()无法使用的解决方法
参考java.text.SimpleDateFormat 在tomcat中我们可以根据数据的类型将结果集获取到,但在websphere中却无法实现,原因不详. 现在有两种解决方法: 第一种方法是当字符 ...
- django下进行项目的部署
-------------------Django下进行对应的服务器配置1.服务器购买 本人在阿里云购买了一个服务器,操作系统为windows server2008/Linux(ubuntu) 2.服 ...
- 区块链下的io域名到底有多神秘?
不知大家发现没有 一些科技创业公司首选域名后缀 是.IO WHY? 因为给人一种很酷的感觉啊~ 譬如,极客届享誉盛名的盘古越狱团队官网:http://pangu.io 国内优质社区,简书--创作你的创 ...
- 浏览器console的用法
Leo_wlCnBlogs 自由.创新.研究.探索 Linux/Windows Mono/DotNet [ Open Source .NET Development/ 使用开源工具进行DotNet软件 ...
- Linux shell中的竖线(|)——…
原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command ...
- IPsec_VPN实现技术【转载】
GRE Tunnel GRE Tunnel(General Routing Encapsulation 通用路由封装)是一种非常简单的VPN(Virtual Private Network 虚拟专用网 ...