导入JAR包
在WEB-XML中配置dispatcherservlet
在springmvc.xml中配置注解扫描组件及视图解析器
@RequestMapping(”/*/{id}”)修饰方法和类,通过访问此注解中的属性值,自动调用被注 解类中的被注解的方法。属性有:value=”URL”、
method=”请求方式”、 params={“请求参数”}、heads={“请求头”}
@PathVariable(“”) 支持占位符,将{id}占位符的值映射到被注解方法的参数中
REST:GET获取 POST新建 PUT更新 DELETE删除
在WEB.XML中配置HiddenHttpMethodFilter,通过在表单是添加隐藏域可将表单的POST请求转 为DELETE或者PUT。
@RequestParam(”参数名”) 不需要占位符,可直接将传过来的参数通过注解映射到 方法的参数中,required属性来指定此参数是否必须有, defaultValue属性设置没有此参数时的默认值
@ RequestHeader(”文件头”) 将文件头中的值传入参数
@CookieValue(“cookiename”) 将cookie传入参数
POJO: Spring会将表单和与之匹配的类自动匹配值(支持级联属性),直接操作此类的对 象,就能操作表单中的参数
可直接将原生SERVLET直接传入参数,包括:HttpServletRequest/HttpServletResponse
HttpSession/java.security.Principal /Local InputuStream/OutputStream/Reader/Writer
ModelAndView: 方法的返回值可存放在ModelAndView对象中,ModelAndView对象会自 动将返回值存放在request域中,前台可通过EL表达式直接调用
Map Model: 可直接在方法中传入MapModel ModelMap类型的参数,Springmvc直接将参 数转为ModelAndView类型放入request域中
@SessionAttributes({“入参”})只能用于类,会将入参同时存放在Session和Request中
Value属性,存放指定名字的值 Type属性存放指定类型的值, 必须有@ModelAttribute 否则,会在运行时报异常。
@ModelAttribute 用于方法和入参,被标记的方法会在每个方法执行前被springmvc调用,
也可用于入参,实现绑定
通过表单修改对象属性值:
运行流程: 1、执行@ModelAttribute中修饰的方法(把从数据库取出的对象放入Map中)
2、Springmvc从Map中取出对象,并将表单中参数赋给对象对应的属性(修 改属性)
3、Springmvc再将修改后的对象放入方法的参数中
注意:map.put();中的KEY值,应该与被@RequestMapping注解的方法中的参数名一致(否则表单中传入的值,无法通过参数名找到应该被修改属性的对象时,Springmvc会新建一个对象)
单文件上传:配置Commons-fileupload
在表单中加入enctype=”multipart/form-data”属性
在目标方法中加入multipartfile类的参数,并用@RequestParam(”表单中input 标签的name=”file””)注解
通过common.io插件的FileUtils.copyInputStreamToFile(file.getInputStream(),new File(“c:\\```”)) 进行文件向c盘位置的上传
拦截器:
编码格式拦截器:在WEB-XML配置Springmvc自带的CharacterEncodingFilter过滤器
通过实现HandlerInterceptor接口编写拦截器
在Springmvc配置文件中注册拦截器:
拦截器中三个重写的方法:preHandler 最先被调用,方法体中return false表示不再 继续往下运行,return true表示继续往下运行
Object args 参数表示被拦截URL(Controller) 对象
postHandle 有ModleAndViewargs参数
afterComplete 用于最后关闭资源处理异常等
MVC数据绑定
Date类型 1、如果指定方法的参数为Date类型,则需要在指定方法所属的类中另外写一 个绑定方法用@initBinder(“要绑定的参数”):
@initBinder(”date”)
Public voidinitDate(WebDateBinder binder){
Binder.registerCustomEditor(Date.class,new
CustomDateEditor(newSimpleDateFormate(“yyyy-MM-dd”),true));
}
2、通过配置BEAN---Formatter
注册FormattingConversionServiceFactoryBean
3、通过配置BEAN---Converter类,将S类型转化为T类型