每日总结

一、Spring结合Ajax的处理方式

1、传统解决方案

直接输出

2、使用SpringMVC框架提供的处理方法

注意:

A.方法的返回值可以是对象或者集合

B.响应给前台的数据直接是json对象(配合@ResponseBody使用)

@ResponseBody的作用:

当处理ajax请求的方法返回值为Java对象时,可以将java对象转换为Json对象

SpringMVC框架提供处理ajax请求方案

二、SpringMVC中后端控制器的返回值

返回值类型

返回值类型共有5种

1、返回值类型为字符串:String(直接return “跳转地址”)

2、返回值类型为void——>传统方式,用于处理ajax请求

3、返回值类型是Java对象(集合@ResponseBody将Java对象转换为json对象)

4、返回值类型为:View

5、返回值类型为ModelAndView

ModelAndView:既可以传递控制方法处理数据到结果页面也可以设置转向地址,跳转到对应的页面。

ModelAndView

三、SpringMVC中重定向和请求转发

eg:/success.jsp

/success.jsp中的/无论是请求转发还是重定向在springmvc中都是代表当前项目,默认的跳转是请求转发使用重定向需要借助redirect关键字。

请求转发

转发

重定向的解决

重定向

四、SpringMVC的视图解析器

视图解析器是为了InternalResourceViewResoler访问特定的文件,为了保证安全性

eg:把jsp文件放在WEB-INF下,这个时候我们使用正常方法无法访问,WEB-INF下的所有文件都必须通过转发的形式访问,

方式一、访问另外一个jsp页面,再转发

方式一

方式二、使用SpringMVC中的控制器,直接返回地址

方式二

但是此两种方式在请求少还凑合,一旦请求数量增大,就无法满足需求了,所以引入了试图解析器,我们可以在SpringMVC核心配置中自定义视图

自定义视图解析器

自定义视图解析器

然后配合@PathVariable就可以直接访问了

访问

五、SpringMVC实现文件的上传步骤

1、创建项目、添加框架以及项目所需依赖,数据库、建库、建表

添加依赖

添加依赖

数据库设计

数据库设计

2、编写实体类,映射接口,以及mapper.xml文件,编写业务层,简单处理业务,并在service.xml配置文件中创建业务层对象

实体类

StudentMapper接口

StudentMapper接口

StudentMapper.xml配置文件

StudentMapper.xml配置文件

业务层接口

业务层接口

业务层接口实现类

业务层接口实现类

创建业务层对象

创建业务层对象

3、编写SpringMybatis核心文件,配置各个属性,并且映射mapper

SpringMybatis核心配置文件

4、编写控制层,编写后端控制器,在SpringMVC.xml核心配置中扫描控制器

注意!在文件上传的过程中会遇到的问题,遇到的问题:

a、上传图片的时候名字中文乱码:

解决方案:在SpringMVC.xml核心配置中配置:

乱码解决

b、上传的文件夹名称必须已经创建:

解决方案:!file.exists()

文件夹必须已经创建解决方案

c、上传不到当前服务器的路径中:

解决方案:request.getServletContext().getRealPath("/upload");获取服务器路径,

但是我们在地址栏中输入的Url访问的其实是服务器,并非项目路径,当前项目中并没有指定的“/upload文件夹”,访问的时候会报404错误,所以我们需要在项目中web下新建upload空文件夹并且在SpringMVC.xml配置文件中对此文件夹放行,否则依旧会报错(有木有感觉很坑)

无法上传到服务的解决方案

d、相同的图片名称会覆盖:

解决方案:使用UUID生成随机码;UUID.randomUUID().toString()

图片名称相同结局

e、无法指定上传图片的大小:

解决方案:推荐e1。选e1!

e1、 fi.getSize()>20*1024

图片大小解决

e2、在SpringMVC.xml核心配置文件中配置maxUploadSize--异常解析器,配置完后再次上传当超出图片大小时,会报页面异常,这时还需要指定对应的异常,当此异常出现时,跳转到错误页面(麻烦!)

图片大小解决2

f、无法指定上传图片的类型:解决方案:添加判断

指定类型文件

5、在web.xml中配置全局核心文件以及前端控制器,并且在SpringMVC.xml文件中配置扫描控制层

web.xml

web.xml

SprigMVC.xml扫描注解

SprigMVC.xml扫描注解

完整的控制层

完整的控制层

执行上传:

执行上传

上传成功页面 跳转

上传成功页面 跳转

服务器目录

服务器目录

数据库表中数据

数据库表中数据

springmvc重定向到另一个项目_SpringMVC结合Ajax、请求转发重定向、视图解析器相关推荐

  1. springmvc重定向到另一个项目_SpringMVC——redirect重定向跳转传值

    spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 首先先来介绍一下不带参数的重定向: 我在后台一个 ...

  2. springmvc重定向到另一个项目_springmvc怎么重定向,从一个controller跳到另外一个controller...

    前言:html 有做者写出了部分方法,但没有给出具体实践,小白看后云里雾里,我这里作两件事:1 给出具体代码 2 对已经有的方法给出补充.java 参考:http://my.oschina.net/u ...

  3. 【SpringMVC入门】SpringMVC环境搭建、接收参数的几种方式、视图解析器、@ResponseBody

    一.SpringMVC 简介 1.SpringMVC 中重要组件 1.1 DispatcherServlet: 前端控制器,接收所有请求(如果配置/不包含jsp) 1.2 HandlerMapping ...

  4. SpringMvc及三大组件(适配器、映射器、视图解析器)

    文章目录 1 SpringMvc三大组件 适配器 映射器 视图解析器 1 @RequestMapping和@Controller **1. 什么是mvc** 2. SpringMvc三大组件及其作用 ...

  5. springmvc重定向到另一个项目_spring mvc的转发与重定向

    转发与重定向 spring mvc底层其实就是一个servlet,因此在spring mvc中也存在转发和重定向的概念.对于转发的页面,可以是在WEB-INF目录下的页面:而重定向的页面,是不能在WE ...

  6. springmvc视图解析器_SpringMVC视图及REST风格

    什么是视图解析器? springMVC用于处理视图最重要的两个接口是ViewResolver和View. ViewResolver的主要作用是把一个逻辑上的视图名称解析成一个真的的视图,而Spring ...

  7. jsp springmvc 视图解析器_SpringMVC学习笔记

    Springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. springmvc是一个基于mvc的web框架. 基本概念和执行过程 ...

  8. springmvc如何使用视图解析器_SpringMVC相关面试题

    点击蓝字 关注我们 最近面试时,每家公司的必问题,今日作此分享,如有更好的解决方案或者存在错误,还请指正. Q1 什么是 SpringMvc? SpringMvc 是 spring 的一个模块,基于 ...

  9. jsp springmvc 视图解析器_Springmvc中多视图解析器解析问题

    最近被问到过几次关于springmvc多视图解析器解析的问题:总结一下. 1.问题: 假设我有两个jsp: WEB-INF/html/a.jsp WEB-INF/report/b.jsp 且我配置了视 ...

最新文章

  1. DevExpress 中 在做全选的全消功能的时候 加快效率
  2. mysql print r_PHP 中 PDO 打印出错信息,和 print_r 的位置提前的奇怪表现问题
  3. mysql least 参数_MySQL中MIN()和LEAST()的区别
  4. mysql sql自动优化_SQL语句的自动优化_MySQL
  5. 虚拟机中运行mac系统很卡
  6. 1147 Heaps (30分)
  7. mac safari java插件_如果提示您信任或更新 Mac 上 Safari 浏览器中的插件
  8. 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
  9. a simplest example of sql select used in excel vba
  10. 伪造的指纹能鉴定出来吗_指纹鉴定能鉴定多久时间的指纹 一个月能鉴定出来吗 主要是一个包上有三四个人的指纹 可以鉴定出来吗...
  11. Java中synchronization和Lock对比
  12. html条形图显示统计数据,条形统计图和柱形统计图区别
  13. zkh工业/润滑油//服// 务
  14. Python自制恶搞virus
  15. LNK2019解决思路
  16. svg 绘制多边形渐变边框并填充渐变背景
  17. 无人机——舵机篇(七)
  18. Picocli-快速构建Java命令行程序
  19. 《Java黑皮书基础篇第10版》 第12章【习题】
  20. 关于如何优雅的做好代码注释

热门文章

  1. 在anaconda python开发套件下进行opencv的安装
  2. bootstrap 模态框无法使用_22 模态框Modal教程(plotly Dash Bootstrap版)
  3. linux面试题_2019年常见的Linux面试题及答案解析,哪些你还不会?
  4. python 干什么工作具有明显优势-科多大数据告诉你Python为什么这么牛?学习python有什么优势?...
  5. python基础教程第三版-Python基础教程(第三版)(七)再谈抽象
  6. 一年突破3亿游戏安装量 小米游戏双发行模式助力游戏开发者
  7. Vue左边与右边内容相关联
  8. sql 获取当前整点时间,当前时间减去12小时
  9. Redis--高并发之分布式锁
  10. 无限极分类php简单,创建无限极分类树型结构的简单方法