springmvc个人小结
1.springMVC是什么?他和struts2有什么区别?
2.框架结构
![](/assets/blank.gif)
3.配置
<!-- 扫描controller注解,多个包中间使用半角逗号分隔 --><context:component-scan base-package="cn.itcast.springmvc.controller.first"/>
b) 注解处理器和适配器的配置:
springmvc使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter,可用在springmvc.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。
c) 视图解析器
在springmvc.xml文件配置如下:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>
4.参数绑定
a) 绑定简单数据类型
使用Model和ModelMap的效果一样,如果直接使用Model,springmvc会实例化ModelMap。
如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。 |
参数类型推荐使用包装数据类型,因为基础数据类型不可以为null.
使用@RequestParam常用于处理简单类型的绑定
value:参数名字
required:是否必须(默认是true)
defaultValue:默认值,表示如果请求中没有同名参数时的默认值
b) 绑定pojo
要求:pojo对象中的属性名和表单中的input的name属性一致
注意:提交的表单中不要有日期类型的数据,否则会报400错误,如果想提交日期类型的数据,需要用到自定义参数绑定.
c) 自定义参数绑定
因为日期数据有很多格式,springMVC没办法吧字符串转换成日期类型,所以需要自定义参数绑定.
前端控制器接收到请求后,找到注解形式的处理器适配器,对RequestMapping标记的方法进行适配,并对方法中的形参进行参数绑定。在springmvc这可以在处理器适配器上自定义Converter进行参数绑定。如果使用<mvc:annotation-driven/>可以在此标签上进行扩展
自定义converter
public class DateConverter implements Converter<String, Date> {@Overridepublic Date convert(String source) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {return simpleDateFormat.parse(source);} catch (ParseException e) {e.printStackTrace();}return null;}
}
配置converter
<!-- 加载注解驱动 --><mvc:annotation-driven conversion-service="conversionService "/><!-- 转换器配置 --><bean id="conversionService"class="org.springframework.format.support.FormattingConversionServiceFactoryBean"><property name="converters"><set><bean class="cn.***.springmvc.convert.DateConverter"/></set></property></bean>
5.解决乱码问题
a) 解决post乱码
<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
b)get请求中文参数出现乱码解决方式(二种)
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
String userName new
String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
springmvc个人小结相关推荐
- SpringMVC框架 学习DAY_03:@RequestMapping注解/拦截器与过滤器
1. 关于@RequestMapping注解 在控制器中,在处理请求的方法之前添加@RequestMapping注解,可以配置请求路径与处理请求的方法的映射关系! 在@RequestMapping注解 ...
- SpringMVC——MVC思想、前端控制器、SpringMVC概述、编写第一个SpringMVC程序
目录 一.什么是MVC 二.前端控制器(中心控制器) 1.什么是前端控制器 2.前端控制器原理 三.什么是SpringMVC 1.SpringMVC简介 2.SpringMVC和Struts2 四.S ...
- Spring MVC 教程详解 个人总结 复习必备 面试宝典 狂神笔记
文章目录 一.MVC 模式 1.什么是 MVC 2.Servlet MVC 小结 二.Spring MVC 1.Spring MVC 概念 为什么学习 Spring MVC 中央控制器 Dispatc ...
- spring注解驱动开发-10 Servlet3.0
Spring AOP实现 前言 servlet3.0简介 ServletContainerInitializer shared libraries(共享库) / runtimes pluggabili ...
- 【SpringMVC框架】小结+视图解析器配置前缀和后缀
1.入门程序小结 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法. 前端控制器配置: 第一种:*.action,访问以.action结尾 由Dispatche ...
- SpringMVC小结
一放下就生疏,所以要温故,所以要笔记. Tip,多数情况下,SpringMVC建议单例执行,Struts2建议多例执行. 原因就在于Struts2使用属性驱动或模型驱动,而SpringMVC则使用方法 ...
- spring+springmvc+ibatis整合小结
最近在整合Spring和ibatis时,不管applicationContext.xml放在哪儿,在web.xml中怎么配置,tomcat启动时始终报applicationContext.xml的错. ...
- SpringMVC中@RequestMapping 6个基本用法小结
1)最基本的,方法级别上应用,例如: Java代码 @RequestMapping(value="/departments") public String simplePatt ...
- SpringMVC拦截器-知识小结
拦截器中的方法说明如下
最新文章
- 九度OnlineJudge之1004:Median
- Vue指令篇_v-for_列表渲染
- c#期末考试知识点_c#期末考试复习题及答案
- GPS围栏两个多边形相交问题的奇葩解法
- MATLAB——SRTM DEM显示
- python图形编程环境环境_Python开发环境Wing IDE matplotlib 2D绘图库代码调试技巧小结...
- echarts地图示例
- windows上的左斜杠和linux上的右斜杠的记忆方式
- 安装pytorch1.10.0/cu111时报错:no matching distribution found for torchvision==0.11.0+cu111
- 离散化-利用计算机求解y=x,离散信号处理(双语)-中国大学mooc-题库零氪
- C语言实现系统日历查询系统
- 基于STM32F103的消防系统之火焰传感器
- ubuntu远程利用邮箱客户端发送邮件
- python下载博文中微博图床图片
- fastreport一些技巧
- 商城 商品模块 数据库 表设计
- 物联网的物流企业信息集成综合管理平台,主要有哪些特征?
- 外呼系统需要服务器么,外呼
- maven和springboot
- 迷你服务器开机无显示,迷你版云服务器未启动