1、Spring MVC4教程超级超级权威权威,超级详细超级详细目前最好的中文教程基于最新的Spring4.x12021内容概要1.SpringMVC 概述2.SpringMVC 的 HelloWorld3.使用 RequestMapping 映射请求4.映射请求参数&请求头5.处理模型数据6.视图和视图解析器7.RESTful CRUD8.SpringMVC 表单标签&处理静态资源9.数据转换&数据格式化&数据校验10.处理 JSON:使用 HttpMessageConverter 11.国际化12.文件的上传13.使用拦截器14.异常处理15.SpringMVC 运行流程16.在 Spring
2、 的环境下使用SpringMVC17.SpringMVC 对比 Struts222021内容概要SpringMVC 概述概述SpringMVC 的的 HelloWorld使用 RequestMapping 映射请求映射请求参数&请求头处理模型数据视图和视图解析器RESTful CRUDSpringMVC 表单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts232021SpringMVC
3、概述 Spring 为为展展现层现层提供的基于提供的基于 MVC 设计设计理念理念的优秀的Web 框架,是目前目前最主流最主流的的 MVC 框架之一框架之一 Spring3.0 后全面超越 Struts2,成为最最优优秀的秀的 MVC 框架框架 Spring MVC 通通过过一套一套 MVC 注解注解,让 POJO 成为处理请 求的控制器,而无须实现任何接口。支持支持 REST 风风格格的的 URL 请请求求 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性42021HelloWorld 步骤:加入 jar 包 在 web.xml 中配置 DispatcherServlet
4、 加入 Spring MVC 的配置文件 编写处理请求的处理器,并标识为处理器 编写视图52021HelloWorld:加入 jar 包 jar 包:commons-logging-1.1.3.jar spring-aop-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar spring-web-4.0.0.RELEASE.jar spring-webm
5、vc-4.0.0.RELEASE.jar62021HelloWorld:配置 web.xml配置 DispatcherServlet:DispatcherServlet 默默认认加加载载/WEB-INF/.xml 的 Spring 配置文件,启动启动 WEB 层层 的的 Spring 容器容器。可以通过 contextConfigLocation 初始化参数自定 义配置文件的位置和名称72021HelloWorld:创建 Spring MVC 配置文件配置自动扫描的包配置配置视图视图解析器解析器:视图名称解析器:将视图逻辑 名解析为:/WEB-INF/pages/.jsp82021HelloW
6、orld:创建请求处理器类92021*.action springmvc-1/helloWorld.actionurldispatcherServletControllerpublic class HelloWorldController RequestMapping(/helloWorld)public String helloWolrd()System.out.println(HelloWorld SpringMVC);return success;/WEB-INF/view/success.jspweb.xmlHandlerSpringMVC 配置文件实际的物理视图102021内容概要S
7、pringMVC 概述SpringMVC 的 HelloWorld使用使用 RequestMapping 映射映射请请求求映射请求参数&请求头处理模型数据视图和视图解析器RESTful CRUDSpringMVC 表单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2112021使用 RequestMapping 映射请求 Spring MVC 使用 RequestMapping 注解为
8、控制器指定可 以处理哪些 URL 请求在控制器的类类定定义义及方法定及方法定义处义处都可标注RequestMapping类类定定义处义处:提供初步的请求映射信息。相对于 WEB 应用的根目录 方法方法处处:提供进一步的细分映射信息。相对于类定义处的 URL。若 类定义处未标注 RequestMapping,则方法处标记的 URL 相对于 WEB 应用的根目录 DispatcherServlet 截获请求后,就通过控制器上RequestMapping 提供的映射信息确定请求所对应的处理 方法。122021使用 RequestMapping 映射请求示例类定义处标记的RequestMapping
9、限定了处理 器类可以处理所有 URI 为/hello 的请求,它相相对对于于 WEB 容器部容器部 署的根路径署的根路径处理器类可以定义多个处理方法,处理来 自/hello 下的请求132021映射映射请请求参数、求参数、请请求方法或求方法或请请求求头头 标准的 HTTP 请求报头请求方法请求URLHTTP协议及版本 报 文 头 报 文 体142021映射映射请请求参数、求参数、请请求方法或求方法或请请求求头头 RequestMapping 除了可以使用请请求求 URL 映射请求外,还还可以使用可以使用请请求方法、求方法、请请求参数及求参数及请请求求头头映射映射请请求求 RequestMapp
10、ing 的 value、method、params 及 heads 分别表示请请求求 URL、请请求方法、求方法、请请求参数及求参数及请请求求头头的映射条 件,他们之间是与与的关系,联联合使用多个条件可合使用多个条件可让请让请求求映射映射 更加精更加精确确化。化。params 和 headers支持支持简单简单的表的表达达式式:param1:表示请求必须包含名为 param1 的请求参数!param1:表示请求不能包含名为 param1 的请求参数param1!=value1:表示请求包含名为 param1 的请求参数,但其值 不能为 value1“param1=value1”,“param2
11、”:请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1152021映射映射请请求参数、求参数、请请求方法或求方法或请请求求头头162021使用 RequestMapping 映射请求Ant 风风格格资资源地址支持源地址支持 3 种种匹配符匹配符:?:匹配文件名中的一个字符*:匹配文件名中的任意字符*:*匹配多层路径 RequestMapping 还支持支持 Ant 风风格的格的 URL:/user/*/createUser:匹配/user/aaa/createUser、/user/bbb/createUser 等 URL/user/*
12、/createUser:匹配/user/createUser、/user/aaa/bbb/createUser 等 URL/user/createUser?:匹配/user/createUseraa、/user/createUserbb 等 URL172021PathVariable映射 URL 绑定的占位符 带带占位符的占位符的 URL 是是 Spring3.0 新增的新增的功能功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的 意义 通通过过 PathVariable 可以将可以将 URL 中占中占位符参数位符参数绑绑定到控定到控 制器制器处处理方法的入参中理
13、方法的入参中:URL 中的 xxx 占位符可以通过 PathVariable(xxx)绑定到操作方法的入参中。182021RESTREST:即 Representational State Transfer。(资资源)表源)表现层现层状状态转态转化。是目前化。是目前 最流行的一最流行的一种种互互联联网网软软件架件架构构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用 资资源(源(Resources):网网络络上的一个上的一个实实体,或者体,或者说说是网是网络络上的一个具体信息上的一个具体信息。它 可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以
14、用一个URI(统一资源定位符)指向它,每种资种资源源对应对应一个特定的一个特定的 URI。要 获取这个资源,访问它的URI就可以,因此 URI 即即为为每一个一个资资源的独源的独一无二的一无二的识识 别别符符。表表现层现层(Representation):把把资资源具体呈源具体呈现现出来的形式出来的形式,叫做它的表,叫做它的表现层现层(Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格 式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。状状态转态转化(化(State Transfer):每发出一个请求,就代表了客户端和服务器的一 次交互过程。
15、HTTP协议,是一个无状态协议,即所有的状态都保存在服务器 端。因此,如果客如果客户户端想要操作服端想要操作服务务器,必器,必须须通通过过某某种种手段,手段,让让服服务务器端器端发发生生“状状态态转转化化”(State Transfer)。而)。而这种转这种转化是建立在表化是建立在表现层现层之上的,所以就是之上的,所以就是“表表现层现层状状态转态转化化”。具体说,就是 HTTP 协议协议里面,四个表示操作方式的里面,四个表示操作方式的动动 词词:GET、POST、PUT、DELETE。它。它们们分分别对应别对应四四种种基本操作:基本操作:GET 用来用来获获 取取资资源,源,POST 用来新建
16、用来新建资资源,源,PUT 用来更新用来更新资资源,源,DELETE 用来用来删删除除资资源。源。192021REST 示例:/order/1 HTTP GET:得到 id=1 的 order/order/1HTTP DELETE:删除 id=1的 order/order/1HTTP PUT:更新id=1的 order/orderHTTP POST:新增 order HiddenHttpMethodFilter:浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支 持,Spring3.0 添加了一个过滤器,可以将这些请求转换 为标准的 ht
17、tp 方法,使得支持 GET、POST、PUT 与 DELETE 请求。202021PathVariable 绑定 URL 占位符到入参 带带占位符的占位符的 URL 是是 Spring3.0 新增的新增的功能功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的 意义 通通过过 PathVariable 可以将可以将 URL 中占中占位符参数位符参数绑绑定到控定到控 制器制器处处理方法的入参中理方法的入参中:URL 中的 xxx 占位符可以通过 PathVariable(xxx)绑定到操作方法的入参中。212021内容概要SpringMVC 概述SpringMVC
18、的 HelloWorld使用 RequestMapping 映射请求映射映射请请求参数求参数&请请求参数求参数处理模型数据视图和视图解析器RESTful CRUDSpringMVC 表单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2222021请求处理方法签名 Spring MVC 通通过过分析分析处处理方法的理方法的签签名,将名,将 HTTP 请请求求信信 息息绑绑定到定到处处理方
19、法的相理方法的相应应人参人参中中。Spring MVC 对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任何方式对方法进行签名。必要时可以可以对对方法及方法入参方法及方法入参标标注相注相应应的注解的注解(PathVariable、RequestParam、RequestHeader 等等)、Spring MVC 框架会将 HTTP 请求的信息绑定到相应的方法入参 中,并根据方法的返回值类型做出相应的后续处理。232021使用 RequestParam 绑定请求参数值 在处理方法入参处使用使用 RequestParam 可以把可以把请请求参求参 数数传递给请传递给请求方法求方法 value
20、:参数名 required:是否必须。默认为 true,表示请求参数中必须包含对应 的参数,若不存在,将抛出异常242021使用 RequestHeader 绑定请求报头的属性值 请求头包含了若干个属性,服务器可据此获知客户端的信 息,通通过过 RequestHeader 即可将即可将请请求求头头中的属性中的属性值绑值绑 定到定到处处理方法的入参中理方法的入参中252021使用 CookieValue 绑定请求中的 Cookie 值 CookieValue 可让处理方法入参绑定某个 Cookie 值262021使用 POJO 对象绑定请求参数值Spring MVC 会按会按请请求参数名和求参数
21、名和 POJO 属性名属性名进进行自行自动动匹匹 配,自配,自动为该对动为该对象填充属性象填充属性值值。支持支持级联级联属性属性。如:dept.deptId、dept.address.tel 等272021使用使用 Servlet API 作作为为入参入参282021MVC 的 Handler 方法可以接受哪些 ServletAPI 类型的参数 HttpServletRequest HttpServletResponse HttpSession java.security.Principal Locale InputStream OutputStream Reader Writer292021
22、内容概要SpringMVC 概述SpringMVC 的 HelloWorld使用 RequestMapping 映射请求映射请求参数&请求头处处理模型数据理模型数据RESTful CRUD视图和视图解析器SpringMVC 表单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2302021处理模型数据 Spring MVC 提供了以下几种途径输出模型数据:ModelAndView:处理方
23、法返回值类型为 ModelAndView时,方法体即可通过该对象添加模型数据 Map 及及 Model:入参为 org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。SessionAttributes:将模型中的某个属性暂存到HttpSession 中,以便多个请求之间可以共享这个属性 ModelAttribute:方法入参标注该注解后,入参的对象 就会放到数据模型中312021ModelAndView 控制器处理方法的返回值如果为 Mode
24、lAndView,则其既既 包含包含视图视图信息,也包含模型数据信息信息,也包含模型数据信息。添加模型数据:MoelAndView addObject(String attributeName,Object attributeValue)ModelAndView addAllObject(Map modelMap)设置视图:void setView(View view)void setViewName(String viewName)j322021Map 及 Model Spring MVC 在内部使用了一个 org.springframework.ui.Model 接口存 储模型数据 具体步
25、骤 Spring MVC 在在调调用方法前会用方法前会创创建一个建一个隐隐 含的模型含的模型对对象作象作为为模型数据的存模型数据的存储储容器容器。如果方法的入参如果方法的入参为为 Map 或或 Model 类类 型型,Spring MVC 会将隐含模型的引用传 递给这些入参。在方法体内,开发者可以 通过这个入参对象访问到模型中的所有数 据,也可以向模型中添加新的属性数据332021Map 及 Model 示例342021SessionAttributes 若希望在多个若希望在多个请请求之求之间间共用某个模型属性数据共用某个模型属性数据,则可以在 控制器类上标注一个 SessionAttribu
26、tes,Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。SessionAttributes 除了可以通过属性名属性名指定需要放到会 话中的属性外,还可以通过模型属性的对对象象类类型型指定哪些 模型属性需要放到会话中 SessionAttributes(types=User.class)会将隐含模型中所有类型为 User.class 的属性添加到会话中。SessionAttributes(value=“user1”,“user2”)SessionAttributes(types=User.class,Dept.class)SessionAttributes(valu
27、e=“user1”,“user2”,types=Dept.class)352021SessionAttributes 示例362021update().表表单单参数参数赋值赋值 new 一个新的一个新的对对象象.传递给传递给目目标标方法,方法,执执行行 update 操操作作db372021update()db 从数据从数据库库中中 取出数据取出数据.表表单单参数参数赋值赋值.传递给传递给目目标标方法,方法,执执行行 update 操操作作db382021ModelAttribute 在方法定在方法定义义上使用上使用 ModelAttribute 注解注解:Spring MVC在在调调用目用目
28、标处标处理方法前,会先逐个理方法前,会先逐个调调用在方法用在方法级级上上标标注了注了ModelAttribute 的方法。的方法。在方法的在方法的入参前使用入参前使用 ModelAttribute 注解注解:可以从可以从隐隐含含对对象中象中获获取取隐隐含的模型数据中含的模型数据中获获取取对对象,再将象,再将请请求参求参数数绑绑定到定到对对象中,再象中,再传传入入参入入参 将方法入参将方法入参对对象添加到模型中象添加到模型中392021由SessionAttributes引发的异常org.springframework.web.HttpSessionRequiredException:Sessi
29、on attribute user required-not found in session 如果在处理类定义处标注了SessionAttributes(“xxx”),则 尝试从会话中获取该属性,并将其赋给该入参,然后再用 请求消息填充该入参对象。如果在会如果在会话话中找不到中找不到对应对应的属的属 性,性,则则抛出抛出 HttpSessionRequiredException 异异常常402021如何避免SessionAttributes引发的异常ControllerRequestMapping(/user)SessionAttributes(“user”)public class Use
30、rController ModelAttribute(user)public User getUser()User user=new User();return user;RequestMapping(value=/handle71)public String handle71(ModelAttribute(“user”)User user).RequestMapping(value=/handle72)public String handle72(ModelMap modelMap,SessionStatus sessionStatus).该该方法会往方法会往隐隐含模型中添加含模型中添加一一
31、个名个名为为user的模型属性的模型属性412021内容概要SpringMVC 概述SpringMVC 的 HelloWorld使用 RequestMapping 映射请求映射请求参数&请求头处理模型数据视图视图和和视图视图解析器解析器RESTful CRUDSpringMVC 表单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2422021Spring MVC如何解析视图ViewVi
32、ewResolver视图对视图对象象JSP/JSTL/PDF.请请求求处处理方法返回理方法返回值类值类型型StringModelAndViewModelAndView432021herServletherServletAnnotationMethodHandlerAdapterAnnotationMethodHandlerAdapterServletHandlerMethodInvokerServletHandlerMethodInvokerUserHandlerUserHandlerInternalResourceViewResolverInternalResourceViewResolve
33、rInternalResourceViewInternalResourceView2:handle3:invokeHandlerMethod4:loginModelAndView 对象5:getModelAndView6:processDispatchResult7:resolveViewName8:resolveViewName渲染视图9:render10:exp11:for调用目标处理器的目标方法由视图解析器解析逻辑视图到物理视图把目标方法返回值转为442021视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象。对于那些返回 String,View 或
34、ModeMap 等类型的 处理方法,Spring MVC 也会在内部将它也会在内部将它们们装配成一个装配成一个 ModelAndView 对对象象,它包含了逻辑名和模型对象的视图 Spring MVC 借助视图视图解析器解析器(ViewResolver)得到最终 的视图对象(View),最终的视图可以是 JSP,也可能是 Excel、JFreeChart等各种表现形式的视图 对于最终究竟采取何种视图对象对模型数据进行渲染,处 理器并不关心,处理器工作重点聚焦在生产模型数据的工 作上,从而实现 MVC 的充分解耦452021视图视图视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户。为
35、了实现视图模型和具体实现技术的解耦,Spring 在 org.springframework.web.servlet 包中定义了一个高度抽象的 View 接口:视图对视图对象由象由视图视图解析器解析器负责实负责实例化例化。由于视图是无状无状态态的,所以他们不会有线线程安全程安全的问题462021常用的视图实现类472021视图解析器 SpringMVC 为逻辑视图名的解析提供了不同的策略,可 以在 Spring WEB 上下文中配置一配置一种种或多或多种种解析策略解析策略,并并 指定他指定他们们之之间间的先后的先后顺顺序序。每一种映射策略对应一个具体 的视图解析器实现类。视图解析器的作用比较单
36、一:将逻辑视图解析为一个具体 的视图对象。所有的视图解析器都必须实现 ViewResolver 接口:482021常用的视图解析器实现类程序员可以选择一种视图解析器或混用多种视图解析器每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性,可可 以通以通过过 order 属性指定解析器的属性指定解析器的优优先先顺顺序序,order 越小越小优优先先级级越高越高。SpringMVC 会按视图解析器顺序的优先顺序对逻辑视图名进行解 析,直到解析成功并返回视图对象,否则将抛出 ServletException 异 常492021InternalResourceViewResolv
37、er JSP 是最常见的视图技术,可以使用InternalResourceViewResolver 作为视图解析器:/WEB-INF/pages/user/createSucess.jsp502021InternalResourceViewResolver若项目中使用了 JSTL,则 SpringMVC 会自动把视图由InternalResourceView 转为 JstlView若使用 JSTL 的 fmt 标签则需要在 SpringMVC 的配置文件中配置国配置国际际 化化资资源文件源文件若希望直接响应通过 SpringMVC 渲染的页面,可以使用 mvc:view-controller
38、标签实现512021Excel 视图 若希望使用 Excel 展示数据列表,仅需要扩展 SpringMVC 提供的 AbstractExcelView 或 AbstractJExcel View 即可。实现 buildExcelDocument()方法,在方法中使用模型数据对象构建 Excel 文档就可以 了。AbstractExcelView 基于基于 POI API,而AbstractJExcelView 是基于 JExcelAPI 的。视图对视图对象需要配置象需要配置 IOC 容器中的一个容器中的一个 Bean,使用,使用 BeanNameViewResolver 作作为视图为视图解析器
39、即可解析器即可 若希望直接在浏览器中直接下载 Excel 文档,则可以设置 响应头 Content-Disposition 的值为 attachment;filename=xxx.xls522021关于重定向 一般情况下,控制器方法返回字符串类型的值会被当成逻 辑视图名处理 如果返回的字符串中带 forward:或或 redirect:前缀 时,SpringMVC 会对他们进行特殊处理:将 forward:和 redirect:当成指示符,其后的字符串作为 URL 来处理 redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作 forward:succe
40、ss.jsp:会完成一个到 success.jsp 的转发操作532021内容概要SpringMVC 概述SpringMVC 的 HelloWorld使用 RequestMapping 映射请求映射请求参数&请求头处理模型数据视图和视图解析器RESTful CRUDSpringMVC 表单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2542021RESTful SpringMVC C
41、RUD 1.显示所有员工信息 URI:emps 请求方式:GET 显示效果552021RESTful SpringMVC CRUD 2.添加所有员工信息 显示添加页面:URI:emp 请求方式:GET 显示效果 添加员工信息:URI:emp 请求方式:POST 显示效果:完成添加,重定向到 list 页面。562021RESTful SpringMVC CRUD 3.删除操作 URL:emp/id 请求方式:DELETE 删除后效果:对应记录从数据表中删除 4.修改操作:lastName 不可修改不可修改!显示修改页面:URI:emp/id 请求方式:GET 显示效果:回显表单。修改员工信息:
42、URI:emp请求方式:PUT 显示效果:完成修改,重定向到 list 页面。572021RESTful SpringMVC CRUD 相关的类:实体类:Employee、Department Handler:EmployeeHandler Dao:EmployeeDao、DepartmentDao 相关的页面 list.jsp input.jsp edit.jsp582021update()从数据从数据库库中中 取出数据取出数据.表表单单参数参数赋值赋值.传递给传递给目目标标方法方法592021内容概要SpringMVC 概述SpringMVC 的 HelloWorld使用 RequestM
43、apping 映射请求映射请求参数&请求头处理模型数据视图和视图解析器RESTful CRUDSpringMVC 表表单标签单标签&处理静态资源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2602021使用 Spring 的表单标签 通过 SpringMVC 的表表单标签单标签可以实现将模型数据 中的属性和 HTML 表单元素相绑定,以实现表单 数据更便捷更便捷编辑编辑和表和表单值单值的回的回显显61
44、2021form 标签一般情况下,通通过过 GET 请请求求获获取表取表单页单页面面,而通通过过 POST 请请求提交表求提交表单页单页面面,因此因此获获取表取表单页单页面和提交表面和提交表单单 页页面面的的 URL 是相同的是相同的。只要只要满满足足该该最佳条件的契最佳条件的契 约约,标签标签就无需通就无需通过过 action 属性指定表属性指定表单单 提交提交的的 URL可以通过 modelAttribute 属性指定绑定的模型属性,若 没有指定该属性,则默认从 request 域对象中读取 command 的表单 bean,如果该属性值也不存在,则会 发生错误。622021表单标签Spr
45、ingMVC 提供了多个表单组件标签,如、等,用以绑定表单字段的 属性值,它们的共有属性如下:path:表表单单字段,字段,对应对应 html 元素的元素的 name 属性,支持属性,支持级联级联属性属性htmlEscape:是否对表单值的 HTML 特殊字符进行转换,默认值 为 truecssClass:表单组件对应的 CSS 样式类名cssErrorClass:表单组件的数据存在错误时,采取的 CSS 样式632021表单标签 form:input、form:password、form:hidden、form:textarea:对应 HTML 表单的 text、password、hidde
46、n、textarea标签 form:radiobutton:单选框组件标签,当表单 bean 对应的 属性值和 value 值相等时,单选框被选中form:radiobuttons:单选框组标签,用于构造多个单选框 items:可以是一个 List、String 或 Map itemValue:指定 radio 的 value 值。可以是集合中 bean 的一个 属性值 itemLabel:指定 radio 的 label 值 delimiter:多个单选框可以通过 delimiter 指定分隔符642021表单标签 form:checkbox:复选框组件。用于构造单个复选框 form:che
47、ckboxs:用于构造多个复选框。使用方式同 form:radiobuttons 标签 form:select:用于构造下拉框组件。使用方式同 form:radiobuttons 标签form:option:下拉框选项组件标签。使用方式同 form:radiobuttons 标签form:errors:显示表单组件或数据校验所对应的错误 :显示表单所有的错误 :显示所有以 user 为前缀的属性对应的错误 :显示特定表单对象属性的错误652021内容概要SpringMVC 概述SpringMVC 的 HelloWorld使用 RequestMapping 映射请求映射请求参数&请求头处理模型数
48、据视图和视图解析器RESTful CRUDSpringMVC 表单标签&处处理静理静态资态资源源数据转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下使用SpringMVCSpringMVC 对比 Struts2662021处理静态资源优雅的 REST 风格的资源URL 不希望带.html 或.do 等后缀若将 DispatcherServlet 请求映射配置为/,则 Spring MVC 将捕获 WEB 容器的所有请求,包括静包括静态资态资源的源的请请求,求,Spri
49、ngMVC 会将他会将他 们们当成一个普通当成一个普通请请求求处处理,因找不到理,因找不到对应处对应处理器将理器将导导致致错误错误。可以在 SpringMVC 的配置文件中配置 的方式解决静态资源的问题:将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler,它会对进入 DispatcherServlet 的 请求进行筛查,如果发现是没有经过映射的请求,就将该请求交由 WEB 应用服务器默认的 Servlet 处理,如果不是静态资源的请求,才由 DispatcherServlet 继续处理一般 WEB 应用服务器默认的 Servlet 的名
50、称都是 default。若所使用的 WEB 服务器的默认 Servlet 名称不是 default,则需要通过 default-servlet-name 属性显式指定672021内容概要SpringMVC 概述SpringMVC 的 HelloWorld使用 RequestMapping 映射请求映射请求参数&请求头处理模型数据视图和视图解析器RESTful CRUDSpringMVC 表单标签&处理静态资源数据数据转换转换&数据格式化&数据校验处理 JSON:使用 HttpMessageConverter国际化文件的上传使用拦截器异常处理SpringMVC 运行流程在 Spring 的环境下
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。