springmvc注解

SpringMVC @ModelAttribute详解

耗尽温柔 提交于 2020-02-06 11:23:38
@ModelAttribute一个具有如下三个作用: ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑 定流程,而且自动暴露为模型数据用于视图页面展示时使用; ②暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用 对象,如注册时需要选择的所在城市等,而且在执行功能处理方法(@RequestMapping 注解的方法)之前,自动添加 到模型对象中,用于视图页面展示时使用; ③暴露@RequestMapping 方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为 模型数据,用于视图页面展示时使用。 被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。   我们编写控制器代码时,会将保存方法独立成一个控制器也是如此。 1、注释void返回值的方法 @Controller public class HelloModelController { @ModelAttribute public void populateModel(@RequestParam String abc, Model model) { model.addAttribute(

SpringMVC参数自动绑定

岁酱吖の 提交于 2020-02-06 07:40:58
SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" type="text"/> ...... </form> 表单中input的name值和Controller的参数变量名保持一致,就能完成数据绑定 ,如果不一致可以使用@RequestParam注解。需要注意的是,如果Controller方法参数中定义的是基本数据类 型,但是从页面提交过来的数据为null或者”"的话,会出现数据转换的异常。也就是必须保证表单传递过来的数据不能为null或”",所以,在开发过程中,对可能为空的数据,最好将参数数据类型定义成包装类型,具体参见下面的例子。 2. 包装类型(以Integer为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(Integer count) { } 表单代码: <form action="saysth.do" method="post"> <input

SpringMVC-基本注解讲解2

徘徊边缘 提交于 2020-02-06 03:45:32
@RequestBody 使用 案例 public String testRequestBody ( @RequestBody String Body ) { System . out . println ( Body ) ; return "success" ; } @PathVariable 案例 @RequestMapping ( path = "/testPathVariable/{id}" ) public String testPathVariable ( @PathVariable ( value = "id" ) String id ) { System . out . println ( id ) ; return "success" ; } <a href="/testRequestParam/testPathVariable/10">testRequestParam</a> 测试结果 @CookieValue 使用 案例 <%-- 测试@CookieValue --%> <a href="/testRequestParam/testCookieValue">testCookieValue</a> @RequestMapping ( path = "/testCookieValue" ) public String testCookieValue (

springmvc 参数绑定

旧巷老猫 提交于 2020-02-05 17:46:39
1. httpservletrequest request request.getParameter("a")方法去取参数 用注解@RequestParam绑定请求参数 用注解@RequestParam绑定请求参数a到变量a 当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决, 例如: @RequestParam(value="a", required=false) @ModelAttribute获取POST请求的FORM表单数据 这个主要是用实体类来实现。 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET) public String printMessage1(@PathVariable String id,@PathVariable String name, ModelMap model) { System.out.println(id); System.out.println(name); model.addAttribute("message", "111111"); return "users"; } 例如,访问user/123/lei路径时,执行以上方法,其中,参数id=123,name=lei //

springMVC总结

落爺英雄遲暮 提交于 2020-02-05 10:19:23
springMVC的定义 SpringMVC是目前最好的实现MVC设计模式的框架,是Spring框架的一个分支产品,已经融合在Spring Web Flow里面。它以SpringIOC容器为基础,并利用容器的特性来简化它的配置。 SpringMVC对MVC流程进行了封装,屏蔽掉很多底层代码,开放出接口,让开发者可以更加轻松快捷的完成基于MVC模式的Web开发。 MVC设计模式的理解 M:model数据模型 V:view用户界面 C:controller控制器 使用mvc的目的:将M和V实现代码分离,C存在的目的是确保M和V的同步,一旦M改变,V也该同步更新。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响 怎么理解MVC设计模式呢? 模型就是封装业务逻辑和数据的一个个的模块,控制器就是调用这些模块来实现功能,视图就是jsp,当用户发出请求的时候,控制器根据请求来选择要处理的业务逻辑和要选择的数据,再返回结果输出到视图层。 springMVC的工作流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成

SpringMVC框架01——使用IDEA搭建SpringMVC环境

倾然丶 夕夏残阳落幕 提交于 2020-02-05 07:44:39
1、Spring MVC 入门 1.1、Spring MVC 简介 把Web应用程序分为三层,分别是: 控制器(Controller):负责接收并处理请求,响应客户端; 模型(Model):模型数据,业务逻辑; 视图(View):呈现模型,与用户进行交互; 目前最好的实现MVC设计模式的框架,是Spring框架的一个子模块,可以与Spring很好的结合使用,无需整合。 1.2、SpringMVC核心组件 DispatcherServlet:前置控制器 Handler:处理器,完成具体业务逻辑 HandlerMapping:将请求映射到Handler HandlerInterceptor:处理器拦截器 HandlerExecutionChain:处理器执行链 HandlerAdapter:处理器适配器 ModelAndView:装载模型数据和视图信息 ViewResolver:视图解析器 1.3、SpringMVC工作流程 (1)客户端请求提交到DispatcherServlet; (2)由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的Controller; (3)DispatcherServlet将请求提交到Controller; (4)Controller调用业务逻辑处理后返回ModelAndView; (5

springmvc

左心房为你撑大大i 提交于 2020-02-05 06:42:08
springmvc 一.思路 spring管理bean 配置web相关的,dispathservlet\视图解析器等等 二.整合过程 1.保持spring(IOC)正常跑起来 2.重点配置spring的xml文件: <!-- bean配置形式一:通过注解 --> <!-- 需配置 mvc:annotation-driven 标签,开启注解支持--> <mvc:annotation-driven></mvc:annotation-driven> <!-- 配置自定扫描的包 --> <context:component-scan base-package="com.live.test.javaee.springmvc"></context:component-scan> <!-- bean配置形式二:通过xml配置文件--> <!-- <import resource="applicationContext.xml"/> --> <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"><

SpringMVC简单的模板(注解版)

爱⌒轻易说出口 提交于 2020-02-05 01:10:57
文章目录 一 . 搭建环境。 1.创建Maven工程. 2.导入依赖. 二. 配置相关的.xml文件 1.配置web.xml文件 2.配置相关Spring.xml文件 三. 编写index.jsp和HelloController控制器类 1. index.jsp 2.controller控制器类 3.在WEB-INF目录下创建pages文件夹,编写success.jsp的成功页面 4. 启动Tomcat服务器,进行测试 一 . 搭建环境。 1.创建Maven工程. ==用IDEA选择Maven选Maven (webapp)骨架 == 2.导入依赖. <!-- 版本锁定 --> < properties > < spring.version > 5.0.2.RELEASE </ spring.version > </ properties > < dependencies > < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-context </ artifactId > < version > ${spring.version} </ version > </ dependency > < dependency > < groupId > org

SpringMVC使用mvc:annotation-driven自动注册标签

淺唱寂寞╮ 提交于 2020-02-04 13:23:18
1、处理器映射器(HandlerMapping)和处理器适配器(HandlerAdapter) 处理器映射器(HandlerMapping)其作用是根据请求的URL路径,通过注解或者XML配置,寻找匹配的处理器(Handler)信息。处理器适配器(HandlerAdapter)其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)。对于用户的请求,处理器映射器和处理器适配器为前端控制器(DispatcherServlet)与处理器(Handler)的交互搭建了重要的桥梁。 处理器映射器和处理器适配器有两种配置方式:一种是基于XML的资源配置,也即非注解的配置方式;另外一种是基于Annotation注解的配置。 1.1 非注解的处理器映射器和适配器(基于XML的资源配置) 第一种配置方式为非注解的处理器映射器和适配器,声明相关的bean及实现即可,配置如下: <!-- 处理器映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!-- 处理器适配器 --> <bean class="org.springframework.web.servlet.mvc.method

spring和springmvc面试题

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-04 12:07:01
1.如何介绍spring 企业级的开源框架,在整个项目中充当容器作用,可以实现各个框架的整合(能够很好的整合第三方优秀插件,如mybatis,struts2等),包含两大核心模块,ioc和aop(也就是控制反转和面向切面编程)。ioc(控制反转)就是把创建对象的权力反转给spring容器进行创建。aop(面向切面编程,思想):在不改变源代码的基础上额外添加新的功能,如拦截器,过滤器,声明式事务 2.spring优点: 提高了层与层之间的解耦性,便于扩展和维护 3.di:给spring管理的对象属性赋值,三种:构造器,set方法,注解的自动装配(有什么注解,注解的什么作用什么时候用) 4.自动装配:自动装配就是把ioc容器中已经有的对象,通过@Autowired注解,根据属性的类型,spring会自动注入值创建实例对象 5.spring设计模式:常用的工厂和单例 6.什么是springmvc? 是基于模型视图控制器的一种(mvc)设计模式,mvc:m model,v:页面,c:controller 7.springmvc的运行原理(执行流程): 客户端发送请求提交给前端控制器,前端控制器根据请求的url找到处理器映射器,处理器映射器找处理器适配器,执行相应的处理器(controller),根据controller返回的结果去调用视图解析器,视图解析器实现页面的渲染和显示 8