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下配置虚拟目录、文件上传】的更多相关文章

  1. FormData使用方法详解,以及在IE9环境下,前端的文件上传问题

    FormData的主要用途有两个: 1.将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率. 2.异步上传文件 一.创建formData对象 ...

  2. SpringMVC 文件上传配置,多文件上传,使用的MultipartFile(转)

    文件上传项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6979915   一.配置文件:SpringMVC 用的是 的MultipartFil ...

  3. SpringMVC 文件上传配置,多文件上传,使用的MultipartFile

    一.配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file <!-- 配置Multipa ...

  4. MVC方法返回值数据

    ModelAndView的作用以及用法 使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图.从名字上看ModelAndView中的Model代表模型,View代表视图,这个 ...

  5. SpringMVC中Controller的方法返回值

    1. 返回ModelAndView对象 controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 实例 @RequestMapping(" ...

  6. springMVC对于controller处理方法返回值的可选类型

    http://www.360doc.com/content/14/0309/19/834950_359081989.shtml

  7. php 在windows下配置虚拟目录的方法

    1.先找到apache的配置文件 httpd.conf 找如如下代码: # Virtual hosts#Include conf/extra/httpd-vhosts.conf 把# Include ...

  8. SpringMVC 文件上传下载

    目录 文件上传 MultipartFile对象 文件下载 上传下载示例 pom.xml增加 创建uploadForm.jsp 创建uploadForm2.jsp 创建userInfo.jsp spri ...

  9. SpringMVC(4):文件上传与下载

    一,文件上传 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理 ...

随机推荐

  1. 2017多校第9场 HDU 6161 Big binary tree 思维,类似字典树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6161 题意: 题目是给一棵完全二叉树,从上到下从左到右给每个节点标号,每个点有权值,初始权值为其标号, ...

  2. 【Shell Basic】source . 与 bash sh 的区别

    一.在命令行窗口执行shell脚本时,source .所执行的脚本中,变量的作用域在当前shell窗口期,而bash.sh在shell脚本执行完了就失效了. dream361@master:~$ ca ...

  3. 【Ubuntu 16】安装deb

    deb是debian linux的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb  dpkg 是Debian Package的简写,是为Debian ...

  4. Python 使用期物处理并发

    抨击线程的往往是系统程序员,他们考虑的使用场景对一般的应用程序员来说,也许一生都不会遇到--应用程序员遇到的使用场景,99% 的情况下只需知道如何派生一堆独立的线程,然后用队列收集结果. 示例:网络下 ...

  5. 8.21.2 深入finally语句快

    关于finally语句块 1.finally语句块可以直接和try语句块联用. try....finally... 2.try...catch....finally 也可以. 3.在finally语句 ...

  6. 基于Vue实现后台系统权限控制

    原文地址:http://refined-x.com/2017/08/29/基于Vue实现后台系统权限控制/,转载请注明出处. 用Vue/React这类双向绑定框架做后台系统再适合不过,后台系统相比普通 ...

  7. 总结切面编程AOP的注解式开发和XML式开发

    有段日子没有总结东西了,因为最近确实有点忙,一直在忙于hadoop集群的搭建,磕磕碰碰现在勉强算是能呼吸了,因为这都是在自己的PC上,资源确实有点紧张(搭建过程后期奉上),今天难得大家都有空(哈哈哈~ ...

  8. hdu 6199 沈阳网络赛---gems gems gems(DP)

    题目链接 Problem Description Now there are n gems, each of which has its own value. Alice and Bob play a ...

  9. Servlet和JSP生命周期概述

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt374 Servlet生命周期分为三个阶段: 1,初始化阶段  调用init( ...

  10. mha 复制检查报错“There is no alive server. We can't do failover”

    安装mha所参考的文章: http://linzhijian.blog.51cto.com/1047212/1906434 http://www.cnblogs.com/xiaoboluo768/p/ ...