springmvc重定向到另一个项目_SpringMVC结合Ajax、请求转发重定向、视图解析器
每日总结
一、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、请求转发重定向、视图解析器相关推荐
- springmvc重定向到另一个项目_SpringMVC——redirect重定向跳转传值
spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 首先先来介绍一下不带参数的重定向: 我在后台一个 ...
- springmvc重定向到另一个项目_springmvc怎么重定向,从一个controller跳到另外一个controller...
前言:html 有做者写出了部分方法,但没有给出具体实践,小白看后云里雾里,我这里作两件事:1 给出具体代码 2 对已经有的方法给出补充.java 参考:http://my.oschina.net/u ...
- 【SpringMVC入门】SpringMVC环境搭建、接收参数的几种方式、视图解析器、@ResponseBody
一.SpringMVC 简介 1.SpringMVC 中重要组件 1.1 DispatcherServlet: 前端控制器,接收所有请求(如果配置/不包含jsp) 1.2 HandlerMapping ...
- SpringMvc及三大组件(适配器、映射器、视图解析器)
文章目录 1 SpringMvc三大组件 适配器 映射器 视图解析器 1 @RequestMapping和@Controller **1. 什么是mvc** 2. SpringMvc三大组件及其作用 ...
- springmvc重定向到另一个项目_spring mvc的转发与重定向
转发与重定向 spring mvc底层其实就是一个servlet,因此在spring mvc中也存在转发和重定向的概念.对于转发的页面,可以是在WEB-INF目录下的页面:而重定向的页面,是不能在WE ...
- springmvc视图解析器_SpringMVC视图及REST风格
什么是视图解析器? springMVC用于处理视图最重要的两个接口是ViewResolver和View. ViewResolver的主要作用是把一个逻辑上的视图名称解析成一个真的的视图,而Spring ...
- jsp springmvc 视图解析器_SpringMVC学习笔记
Springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. springmvc是一个基于mvc的web框架. 基本概念和执行过程 ...
- springmvc如何使用视图解析器_SpringMVC相关面试题
点击蓝字 关注我们 最近面试时,每家公司的必问题,今日作此分享,如有更好的解决方案或者存在错误,还请指正. Q1 什么是 SpringMvc? SpringMvc 是 spring 的一个模块,基于 ...
- jsp springmvc 视图解析器_Springmvc中多视图解析器解析问题
最近被问到过几次关于springmvc多视图解析器解析的问题:总结一下. 1.问题: 假设我有两个jsp: WEB-INF/html/a.jsp WEB-INF/report/b.jsp 且我配置了视 ...
最新文章
- DevExpress 中 在做全选的全消功能的时候 加快效率
- mysql print r_PHP 中 PDO 打印出错信息,和 print_r 的位置提前的奇怪表现问题
- mysql least 参数_MySQL中MIN()和LEAST()的区别
- mysql sql自动优化_SQL语句的自动优化_MySQL
- 虚拟机中运行mac系统很卡
- 1147 Heaps (30分)
- mac safari java插件_如果提示您信任或更新 Mac 上 Safari 浏览器中的插件
- 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
- a simplest example of sql select used in excel vba
- 伪造的指纹能鉴定出来吗_指纹鉴定能鉴定多久时间的指纹 一个月能鉴定出来吗 主要是一个包上有三四个人的指纹 可以鉴定出来吗...
- Java中synchronization和Lock对比
- html条形图显示统计数据,条形统计图和柱形统计图区别
- zkh工业/润滑油//服// 务
- Python自制恶搞virus
- LNK2019解决思路
- svg 绘制多边形渐变边框并填充渐变背景
- 无人机——舵机篇(七)
- Picocli-快速构建Java命令行程序
- 《Java黑皮书基础篇第10版》 第12章【习题】
- 关于如何优雅的做好代码注释
热门文章
- 在anaconda python开发套件下进行opencv的安装
- bootstrap 模态框无法使用_22 模态框Modal教程(plotly Dash Bootstrap版)
- linux面试题_2019年常见的Linux面试题及答案解析,哪些你还不会?
- python 干什么工作具有明显优势-科多大数据告诉你Python为什么这么牛?学习python有什么优势?...
- python基础教程第三版-Python基础教程(第三版)(七)再谈抽象
- 一年突破3亿游戏安装量 小米游戏双发行模式助力游戏开发者
- Vue左边与右边内容相关联
- sql 获取当前整点时间,当前时间减去12小时
- Redis--高并发之分布式锁
- 无限极分类php简单,创建无限极分类树型结构的简单方法