modelandview

SpringMVC(二)

僤鯓⒐⒋嵵緔 提交于 2019-11-29 05:17:18
1. 接受的参数为日期类型 如何接受日期类型格式的参数? (1)接受单个日期参数 网页输出: //后台接受参数为日期类型 @RequestMapping("toDate.do") public String toDate(Date date) { System.out.println(date); return "index"; } 使用initBinds 加入到UsersController.java 当你接受的参数日期类型时先经过该方法进行处理 @InitBinder public void initBinder(ServletRequestDataBinder binder){ //只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型 binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); } (2)接受多个参数时 网页输出: // 注册页面 register.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD

springMVC参数设置

笑着哭i 提交于 2019-11-29 05:05:14
接收的参数为日期类型 在springmvc的controller控制层接收日期参数时,如果不加以设置,服务器开启后,进入不了页面中,会报错。这个错误就是日期在页面传入到springmvc的controller中的时候没有转化。就会引起错误 解决的方法是,在controller类中加一个方法,如下: @InitBinder public void initBinder(ServletRequestDataBinder binder){ //只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型 binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true)); } 这里必须要有注解,才能起到转化的作用。 controller进行数据的保存 在springmvc的controller中进行数据保存跟以前的servlet中保存数据是同一个原理,把数据保存到request、session中,当数据保存到request中的时候,有下面的方法: 写一个方法返回类型是ModelAndView,那么这种保存方式必须在方法里面重新new一个新的ModelAndView的类,然后调用里面的方法,实现保存和跳转的作用,如图: @Controller

一起学SpringMVC之文件上传

别等时光非礼了梦想. 提交于 2019-11-29 03:29:02
概述 在Web系统开发过程中,文件上传是普遍的功能,本文主要以一个简单的小例子,讲解SpringMVC中文件上传的使用方法,仅供学习分享使用,如有不足之处,还请指正。 文件上传依赖包 如下所示,文件上传依赖的jar包主要有两个: commons-fileupload-1.4.jar commons-io-2.6.jar SpringMVC支持文件上传操作步骤 1. 配置支持文件上传的Bean 如下所示:主要配置默认的编码方式,和上传文件的限制大小 1 <!-- 文件上传支持 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <property name="defaultEncoding" value="UTF-8"></property> 4 <!-- 设置最大上传内容,单位是byte --> 5 <property name="maxUploadSize" value="1024000"></property> 6 </bean> 2. 在处理方法中,以MultipartFile 进行接收 如下所示:MultipartFile表示一个存储在内存中或者磁盘临时文件类型的文件内容。可以获取对应的输入流

@RestController vs @Controller

自古美人都是妖i 提交于 2019-11-28 14:58:51
package com.example.demo.controller; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.example.demo.domain

开始学SpringMVC之Request方式

匆匆过客 提交于 2019-11-28 11:19:59
本文主要以一些简单的小例子,简述在SpringMVC开发过程中,经常用到的Request方面的内容,仅供学习分享使用,如有不足之处,还请指正。 概述 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。如果要支持其他方式进行访问,则必须在表单中增加Hidden元素,然后再SpringMVC中过滤器进行拦截,再重新封装请求方式。 Request常见访问方式 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据 GET方式 访问的特点: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回数据 SpringMVC中GET访问示例 如下所示: 1 /** 2 * GET请求方式 3 * @return 4 */ 5 @RequestMapping(value="testGet",method=RequestMethod.GET) 6 public ModelAndView testGet(String uname){ 7 String msg="GET方式访问,uname="+uname; 8 System.out.println(msg); 9 ModelAndView mav=new

Spring MVC的ModelAndView的使用

主宰稳场 提交于 2019-11-28 11:04:06
一 控制器 package org.fkit.controller; import org.fkit.domain.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; // Controller注解用于指示该类是一个控制器,可以同时处理多个请求动作 @Controller public class ModelAndViewController{ @RequestMapping(value="/ModelAndViewTest") public ModelAndView ModelAndViewTest(ModelAndView mv){ System.out.println("ModelAndViewTest"); User user = new User(); // 设置user对象的username属性 user.setUsername("疯狂软件"); // 将User对象添加到ModelAndView当中 mv.addObject("user", user); // 设置要转发的页面

SpringMVC的拦截器讲解

坚强是说给别人听的谎言 提交于 2019-11-28 06:39:29
Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。 用户可以自己定义一些拦截器来实现特定的功能。 谈到拦截器,还要向大家提一个词——拦截器链(Interceptor Chain)。拦截器链就是将拦截器按一定的顺 序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。 说到这里,可能大家脑海中有了一个疑问,这不是我们之前学的过滤器吗?是的它和过滤器是有几分相似,但 是也有区别,接下来我们就来说说他们的区别: 过滤器是 servlet 规范中的一部分,任何 java web 工程都可以使用。 拦截器是 SpringMVC 框架自己的,只有使用了 SpringMVC 框架的工程才能用。 过滤器在 url-pattern 中配置了/*之后,可以对所有要访问的资源拦截。 拦截器它是只会拦截访问的控制器方法,如果访问的是 jsp,html,css,image 或者 js 是不会进行拦 截的。 它也是 AOP 思想的具体应用。 我们要想自定义拦截器, 要求必须实现: HandlerInterceptor 接口。 直接上代码吧,使用idea创建一个web工程,我们使用maven进行创建,创建过程不演示。 直接看下代码的结构: 首先看我们的 HandlerInterceptorDemo 类

SpringMVC-拦截器

大兔子大兔子 提交于 2019-11-28 05:36:26
SpringMVC拦截器 1.拦截器的作用   SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。   用户可以自定义一些拦截器来实现特定的功能。   拦截器链:拦截器链就是将拦截器按一定的顺序连接成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。    拦截器和过滤器的区别 :      过滤器 是Servlet规范中的一部分,任何java web工程都可以使用。      拦截器 是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才可以使用。      过滤器 在url-pattern中配置了/*之后,可以对所有要访问的资源拦截。      拦截器 它只会拦截访问的控制器方法,如果访问的是jsp,html,css,image或者是js是不会进行拦截的。   它也是AOP思想的具体应用。   我们要想自定义拦截器,要求必须实现: HandlerInterceptor 接口。 2. 自定义拦截器的步骤   2.1 第一步:编写一个普通类实现HandlerInterception接口 package com.llb.interception; import org.springframework.web.servlet.HandlerInterceptor;

SpringMVC-异常处理

南楼画角 提交于 2019-11-28 05:15:14
SpringMVC异常处理 1. 异常处理的思路 系统中异常包括两类:编译时异常和运行时异常,前者通过捕获异常从而获得异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。 系统的dao、service、controller出现都通过throws Exception向上抛出,最后由SpringMVC前端控制器交由异常处理器进行异常处理。 2.实现步骤   2.1 编写异常类和错误页面    package com.llb.exception; /**异常类 * Ceate By llb on 2019/8/21 */ public class SysException extends Exception { private String msg ; public SysException(String msg) { this.msg = msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }   错误页面: <%-- Created by IntelliJ IDEA. User: Administrator Date: 2019/8/21 Time: 17:37 To change this template use File

SpringMVC-相应数据和结果视图

霸气de小男生 提交于 2019-11-28 02:46:36
SpringMVC-相应数据和结果视图 1.返回值分类   1.1 字符串  Controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。 /** * String 返回值 * 指定逻辑视图名,经过视图解析器解析为jsp物理路径:/WEB-INF/pages/success.jsp * @param model * @return */ @RequestMapping("/testString") public String testString(Model model){ System.out.println("testString方法执行了..."); User user = new User(); user.setUsername("张三"); user.setAge(18); user.setSex("女"); // 存储 model.addAttribute("user", user); return "success"; }   1.2 void,没有返回值   Servlet原始API可以作为控制器中方法的参数。     (1) 使用request请求转发: /** * 没有返回值 * @param */ @RequestMapping("/testVoid") public void testVoid(HttpServletRequest